字符串操作是任何编程语言中的常见任务。Python 提供了两种常见的方法来检查一个字符串是否包含另一个字符串。
Python 检查字符串是否包含另一个字符串
Python 字符串支持 in 运算符。因此,我们可以使用它来检查一个字符串是否是另一个字符串的一部分。 in 运算符的语法是:
sub in str
如果“sub”字符串是“str”的一部分,则返回 True
,否则返回 False
。让我们看一些在 Python 中使用 in
运算符的示例。
str1 = 'I love Python Programming'
str2 = 'Python'
str3 = 'Java'
print(f'"{str1}" contains "{str2}" = {str2 in str1}')
print(f'"{str1}" contains "{str2.lower()}" = {str2.lower() in str1}')
print(f'"{str1}" contains "{str3}" = {str3 in str1}')
if str2 in str1:
print(f'"{str1}" contains "{str2}"')
else:
print(f'"{str1}" does not contain "{str2}"')
输出:
"I love Python Programming" contains "Python" = True
"I love Python Programming" contains "python" = False
"I love Python Programming" contains "Java" = False
"I love Python Programming" contains "Python"
如果你对 Python 中的 f-前缀字符串不熟悉,这是一种在 Python 3.6 中引入的字符串格式化的新方式。你可以在 Python 中的 f-字符串 中了解更多信息。
当我们使用 in 运算符时,内部实际上调用了 __contains__() 函数。我们也可以直接使用这个函数,但出于可读性的目的,推荐使用 in 运算符。
s = 'abc'
print('s contains a =', s.__contains__('a'))
print('s contains A =', s.__contains__('A'))
print('s contains X =', s.__contains__('X'))
输出:
s contains a = True
s contains A = False
s contains X = False
使用find()来检查字符串是否包含另一个子串
我们也可以使用字符串的find()函数来检查字符串是否包含子串。该函数返回子串第一次出现的索引位置,如果未找到则返回-1。
str1 = 'I love Python Programming'
str2 = 'Python'
str3 = 'Java'
index = str1.find(str2)
if index != -1:
print(f'"{str1}" contains "{str2}"')
else:
print(f'"{str1}" does not contain "{str2}"')
index = str1.find(str3)
if index != -1:
print(f'"{str1}" contains "{str3}"')
else:
print(f'"{str1}" does not contain "{str3}"')
输出:
"I love Python Programming" contains "Python"
"I love Python Programming" does not contain "Java"
您可以从我们的GitHub存储库中查看完整的Python脚本和更多Python示例。
Source:
https://www.digitalocean.com/community/tutorials/python-check-if-string-contains-another-string