开发者在 python 操作字符串时,经常需要判断字符串中是否包含指定子字符串,这里给大家介绍常用的几种方法。
几种方式
in 运算符
最简单的方式,也是最常用的方法是用 in
运算符,示例如下:
if 'substring' in some_string:
print(some_string)
in 运算符接受两个参数,运算逻辑是左参数是否包含在右参数中,如果包含返回 True,否则返回 False。
find() 和 rfind() 函数
利用 str 模块的 find()
和 rfind()
函数。
find 表示从左向右搜索子字符串,rfind 表示从右向左搜索子字符串,如果匹配成功,两者都返回对应的位置(索引),否则返回 -1。
string = "This is a string"
print('find', string.find('is'))
print('rfind', string.rfind('is'))
print('find', string.find('int'))
上述示例输出如下:
find 2 rfind 5 find -1
当然,上述两个函数也可以指定搜索的范围,即指定起始索引位置和结束索引位置。
index() 和 rindex() 函数
和 find 和 rfind 函数类似,内置 str 模块也提供了 index()
和 rindex()
函数,只不过在找不到子字符串的时候会报一个 ValueError
的异常。
string = "This is a string"
print('find', string.index('is'))
print('rfind', string.rindex('is'))
上述示例输出如下:
find 2 rfind 5
若是不存在的子字符串,它会报 ValueError:
string = "This is a string"
print('find', string.index('int'))
报错信息如下:
Traceback (most recent call last):
File "/xxxx/xxx/xx.py", line 12, in <module>
print('find', string.index('int'))
ValueError: substring not found