在 Python 中,如果想要判断字符串是否包含某个字符串,常用的有以下 3 种方式。
- 使用 in 关键字。
- 使用 find() 方法。
- 使用正则表达式。
使用 in 关键字
在 Python 中,我们可以使用 in 关键字判断一个字符串是否包含另一个子串。
语法:
substring in string说明:
substring 是子串,string 是原字符串。
示例 1:使用 in 判断
site = 'lvyenet'
sub = 'lvye'
if sub in site:
print('包含')
else:
print('不包含')运行结果如下。
包含使用 find() 方法
find() 是 Python 字符串的一个方法,它用于获取子串第一次出现的下标。如果找不到子串,则返回 -1。
也就是说,如果 find() 的返回值不等于 -1,那就表示字符串包含了指定子串。
语法:
string.find(sub, start, end)说明:
find() 方法接收以下 3 个参数。
sub(必选):表示要查找的子串。start(可选):表示查找的开始下标。end(可选):表示查找的结束下标。
示例 2:使用 find() 判断
site = 'lvyenet'
sub = 'lvye'
if site.find(sub) != -1:
print('包含')
else:
print('不包含')运行结果如下。
包含使用正则表达式
在 Python 中,我们还可以使用正则表达式的 re.search() 函数来判断字符串是否包含某个字符串。
语法:
re.search(pattern, str)说明:
re.search() 函数接收以下 2 个参数。
pattern(必选):是一个正则表达式。str(必选):是原字符串。
re.search() 函数会从左到右搜索整个字符串,然后返回包含第一个匹配结果的对象。如果没有找到任何匹配项,则返回 None。
也就是说,如果 re.search() 的返回值不等于 None,那就表示字符串包含了指定子串。
示例 3:使用正则表达式判断
import re
site = 'lvyenet'
sub = 'lvye'
if re.search(sub, site):
print('包含')
else:
print('不包含')运行结果如下。
包含分析:
re.search() 找到匹配项时会返回一个对象(视为真),找不到时返回 None(视为假)。因此我们不需要写成 != None,而是直接放在 if 后面作为条件判断即可,这也是 Python 开发中最推荐的简洁写法。
提示: 在实际开发中,如果只是简单地判断是否包含固定子串,强烈建议优先使用 in 关键字,因为它的执行速度最快,代码也最简洁。只有在需要根据 “复杂的规则” 去查找时,才去使用正则表达式。
