Python 如何检查子字符串是否包含在另一个字符串中
子字符串是字符串中的连续字符序列。换句话说,它是较大文本中出现的较小文本片段。
例如,在字符串”lorem ipsum”中,子字符串”lorem”出现在较大的字符串中。同样,子字符串”em i”也出现在较大的字符串”lorem ipsum”中。
子字符串操作在编程中很常见,可以用于各种任务,如在文本中搜索特定单词、提取文本的部分或用其他单词替换文本的某些部分。
在Python中检查子字符串是否包含在字符串中是一个常见的任务,可以使用几种不同的方法来完成。让我们在下面考虑一些最流行的方法,以及你可以尝试自己的代码示例。
使用‘in’操作符
检查子字符串是否包含在字符串中的最简单方法是使用in操作符。下面是你可以这样做的方法:
示例
在此代码中,我们定义了一个名为string的字符串变量,其中包含文本”lorem ipsum”。我们还定义了一个名为substring的子字符串变量,其中包含文本”ipsum”。
然后,我们使用if语句来检查子字符串是否包含在字符串中。in操作符检查substring是否是string的子字符串,如果是,则返回True,否则返回False。
如果在字符串中找到了子字符串,则打印消息”Substring found!”。否则,打印消息”Substring not found.”。
string = "lorem ipsum"
substring = "ipsum"
if substring in string:
print("Substring found!")
else:
print("Substring not found.")
输出
Substring found!
使用find()方法
另一种检查子字符串是否包含在字符串中的方法是使用find()方法。以下是一个例子:
示例
在这段代码中,我们定义了字符串变量和子字符串变量。
然后,我们使用字符串变量的find()方法来检查子字符串是否包含在字符串中。find()方法在字符串中搜索子字符串,并返回子字符串第一次出现的索引,如果未找到子字符串,则返回-1。
我们使用if语句来检查string.find(substring)的结果是否不等于-1。如果不等于-1,说明子字符串在字符串中找到了,所以我们打印”Substring found!”的消息。否则,我们打印”Substring not found.”的消息。
string = "lorem ipsum"
substring = "dolor"
if string.find(substring) != -1:
print("Substring found!")
else:
print("Substring not found.")
输出
Substring not found.
使用正则表达式
另一种检查一个字符串中是否包含另一个子字符串的方法是使用正则表达式。
示例
在这个代码中,我们首先导入了re模块,该模块提供了Python中对正则表达式的支持。
然后我们像之前一样定义了字符串和子字符串的变量。
我们使用re.search()函数来在字符串中搜索子字符串。re.search()函数将字符串与用子字符串表示的正则表达式进行匹配。
如果找到了匹配,re.search()函数将返回一个匹配对象,在布尔上下文中被视为True。如果没有找到匹配,该函数将返回None,在布尔上下文中被视为False。
我们使用if语句来检查re.search(substring, string)的结果是否为True。如果是,则子字符串在字符串中被找到,我们打印消息”子字符串已找到!”。否则,我们打印消息”子字符串未找到。”。
import re
string = "lorem ipsum"
substring = "ipsum"
if re.search(substring, string):
print("Substring found!")
else:
print("Substring not found.")
输出
Substring found!
使用startswith()方法
另一种检查一个子字符串是否包含在字符串中的方法是使用startswith()方法。
示例
在这段代码中,我们像之前一样定义了字符串和子字符串变量。
我们使用字符串变量的startswith()方法来检查子字符串是否在字符串的开头。startswith()方法返回True,如果字符串以子字符串开头,否则返回False。
我们使用if语句来检查string.startswith(substring)的结果是否为True。如果是,那么子字符串在字符串中被找到,所以我们打印消息”Substring found!”。否则,我们打印消息”Substring not found.”。
string = "lorem ipsum"
substring = "dolor"
if string.startswith(substring):
print("Substring found!")
else:
print("Substring not found.")
输出
Substring not found.
使用列表推导进行检查
另一种检查一个字符串中是否包含子字符串的方法是使用列表推导。
示例
在这段代码中,我们再次像以前一样定义了字符串和子字符串变量。
我们使用列表推导将字符串拆分为单个单词,并检查子字符串是否包含在其中任何一个单词中。字符串变量的split()方法将字符串拆分为一个单词的列表,使用空格作为分隔符。列表推导然后检查子字符串是否包含在列表中的每个单词中。
我们使用any()函数来检查列表推导返回的列表中的任何一个值是否为True。any()函数在列表中至少有一个值为True时返回True,否则返回False。
我们使用if语句来检查any([substring in word for word in string.split()])的结果是否为True。如果是,那么子字符串在字符串中被找到,所以我们打印出消息”子字符串找到!”。否则,我们打印出消息”子字符串未找到”。
string = "lorem ipsum"
substring = "lorem"
if any([substring in word for word in string.split()]):
print("Substring found!")
else:
print("Substring not found.")
输出
Substring found!
所以这些都是Python中检查一个字符串中是否包含子字符串的不同方法!根据你的具体用例,可能有一种方法比其他方法更适合。但总体来说,“in”操作符和find()方法是最常用的这个任务的方法。