有时我们需要找出一个特定的字符串是否存在于另一个字符串中。所以要知道,在Python编程中已经有一些预定义的方法可用。最常见的五种方法,我们可以使用它们。
- in 操作符
- 查找方法
- 索引方法
- 计数法
- 正则表达式法
那么,让我们开始详细讨论每种方法。
方法1:使用in运算符
我们将看到的第一个方法是 "in "运算符方法。如果子串在字符串中存在,这个python操作符将返回True,否则将返回False。这是检查任何字符串是否有子串的最简单的方法。下面的程序将给出一个完整的例子来使用这个方法。
string = "Python coding day"
substring = "Python"
if substring in string:
print("Found the substring")
else:
print("Not Found")
输出
Found the substring
第1行和第2行:我们创建了一个字符串和一个子串。
第4行到第7行:我们现在用'in'操作符来检查条件,看字符串中是否有一个子串。如果它返回True,它将打印该语句,或者它将跳转到其他语句。我们的输出显示它返回True,或者我们也可以看到Python存在于字符串中。
方法 2:使用 find () 方法
我们要讨论的第二个方法是 find () 方法。如果子串存在于字符串中,这个方法将返回子串的第一个索引,否则它将返回-1。这也是检查任何字符串是否有子串的最简单方法。下面的程序将给出一个如何使用这种方法的完整例子。
string = "Python coding day"
substring = "Python"
if string.find(substring) != -1:
print("Found the substring")
else:
print("Not Found")
输出
Found the substring
第1行和第2行: 我们创建了一个字符串和一个子串。
第4行到第7行:我们现在用find方法检查条件,看看字符串中是否有一个子串。正如我们所知,如果子串存在,那么它将返回子串的起始索引,否则将返回-1。所以,我们要检查的条件是,当返回值不等于-1时,打印将被执行,这直接意味着字符串中存在一个子串。我们的输出结果显示,它返回一个正值,或者我们也可以看到Python存在于字符串中。
方法3:使用索引方法
我们要讨论的下一个方法是index()方法。这个方法与find ()方法非常相似,但是如果子串存在于字符串中,这个方法将返回发生的子串的第一个索引,否则将引发一个错误。所以,为了处理数值错误的异常,我们必须使用异常处理,如下面的示例程序所示。这也是检查任何字符串是否有子串的最简单的方法。下面的程序将给出一个完整的例子,说明如何使用这种方法。
string = "Python coding day"
substring = "Python"
try:
string.index(substring)
except ValueError:
print("Not Found")
else:
print("Found the substring")
输出
Found the substring
第1行和第2行:我们创建了一个字符串和一个子串。
第4行到第7行:我们在try和except块中保留了我们的字符串检查条件,以处理异常错误;否则,程序将无条件地停止。我们现在用字符串类的索引方法进行检查,找出子串出现的第一个索引值。正如我们所知,如果子串存在,那么它将返回子串的起始索引;否则,它将引发一个异常。如果子串存在于字符串中,它将直接跳到else部分;否则,它将引发ValueError异常。我们的输出显示,它返回一个正值,或者我们也可以看到Python存在于字符串中。
方法4:使用 count () 方法
我们要讨论的下一个方法是 count () 方法。count方法还有一个优点:它将计算字符串中存在的所有子串。它将返回字符串中存在的子字符串的数量。如果字符串中没有子串存在,那么它将返回0。
string = "Python coding day"
substring = "Python"
if string.count(substring) >0:
print("Found the substring")
else:
print("Not Found")
输出
Found the substring
第1行和第2行: 我们创建了一个字符串和一个子串。
第4行到第7行:我们现在用字符串计数类的方法检查条件,看字符串中是否有子串。正如我们所知,如果子串存在,它将返回字符串中存在的子串总数;否则,它将返回0。所以,我们检查一下,当返回值大于0的时候,打印将被执行,这直接意味着字符串中存在一个子串。我们的输出显示,它的返回值大于0,或者我们也可以看到Python在字符串中存在。
count方法对于了解主字符串中出现的子字符串的总数很有用。
方法5:使用正则表达式方法
我们要讨论的下一个方法是正则表达式方法。正则表达式方法非常容易使用。正则表达式首先定义了我们要搜索的模式,然后我们必须使用搜索方法,它是一个再库类。我们把搜索模式和原始字符串都传给它,如下面的例子程序所示。
from re import search
string = "Pythoncodingday"
substring = "Python"
if search(substring, string):
print("Found the substring")
else:
print("Not found")
输出
Found the substring
第1行:我们导入re库,因为我们需要搜索模块。
第3行和第4行:我们创建了一个字符串和一个子串。
第6行到第9行:我们现在用搜索模块检查条件,在字符串中是否有一个子串。如果它返回True,它将打印该语句或跳转到其他语句。我们的输出显示它返回True,或者我们也可以看到Python存在于字符串中。
总结
在这篇文章中,我们已经看到了不同的主要类型的方法来搜索父字符串中的子字符串。我们讨论的正则表达式的最后一种方法非常慢,我们只能在一些关键的情况下使用这种方法。最好的方法是 "in "运算符方法,它非常容易使用。其他方法也很容易使用,这取决于用户的要求。所以你可以根据你的要求,看看你想在哪里使用这些方法。