检查Python字符串是否包含子字符串的最简单方法是使用in运算符。
in运算符用于在Python中检查数据结构的成员身份,它返回布尔值(True或False)。要使用in运算符检查字符串是否包含Python中的子字符串,我们只需在超字符串上调用它:
此运算符是调用对象的__contains__方法的简写,也适用于检查列表中是否存在项。值得注意的是,它不是空安全的,因此如果fullstring指向None,则会抛出异常:
TypeError: argument of type 'NoneType' is not iterable
为了避免这种情况,首先要检查它是否指向None:
Python中的String类型有一个名为index()的方法,可用于查找字符串中子字符串第一个出现的位置。
如果未找到子字符串,将引发ValueError异常,可以使用try-except else块来处理:
如果需要知道子字符串的位置,而不是只知道它在整个字符串中是否出现,则此方法非常有用。
String类型有另一个方法find(),它比index()更方便使用,因为我们不需要担心处理任何异常。
如果find()找不到匹配项,则返回-1,否则返回较大字符串中子字符串的最左边索引。
如果希望避免捕获错误,那么该方法应该优于index()。
正则表达式提供了一种更灵活(尽管更复杂)的方式来检查字符串的模式匹配。Python附带了一个用于正则表达式的内置模块,称为re。re模块包含一个名为search()的函数,我们可以使用它来匹配子字符串模式:
如果需要更复杂的匹配函数,如不区分大小写的匹配,则此方法是最好的,否则,对于简单的子字符串匹配用例,应该避免正则表达式的复杂性和较慢的速度。