如何在Python中检查子字符串是否包含在另一个字符串中?


子字符串是指字符串中连续的字符序列。换句话说,它是在较长文本中出现的一小段文本。

例如,在字符串“lorem ipsum”中,“lorem”是较长字符串中的子字符串。“em i”也是“lorem ipsum”中的子字符串。

子字符串操作在编程中很常见,可用于各种任务,例如搜索文本中的特定单词、提取文本部分或将文本的某些部分替换为其他单词。

检查Python中子字符串是否包含在字符串中是一项常见任务,可以使用多种方法完成。让我们考虑以下一些最流行的方法,以及您可以自己尝试的代码示例。

使用“in”运算符

检查子字符串是否包含在字符串中的最简单方法是使用in运算符。以下是操作方法

示例

在此代码中,我们定义了一个名为string的字符串变量,其中包含文本“lorem ipsum”。我们还定义了一个名为substring的子字符串变量,其中包含文本“ipsum”。

然后,我们使用if语句检查子字符串是否包含在字符串中。in运算符检查substring是否是string的子字符串,如果是则返回True,否则返回False。

如果在字符串中找到子字符串,我们打印消息“子字符串已找到!”。否则,我们打印消息“子字符串未找到”。

string = "lorem ipsum"

substring = "ipsum"
if substring in string:
    print("Substring found!")
else:
    print("Substring not found.")

输出

Substring found!

使用find()方法

检查子字符串是否包含在字符串中的另一种方法是使用find()方法。这是一个示例

示例

在此代码中,我们定义了如所示的string和substring变量。

然后,我们使用string变量的find()方法检查子字符串是否包含在字符串中。find()方法搜索字符串中的子字符串,并返回子字符串第一次出现的索引,如果未找到子字符串则返回-1。

我们使用if语句检查string.find(substring)的结果是否不等于-1。如果不等于-1,则在字符串中找到子字符串,因此我们打印消息“子字符串已找到!”。否则,我们打印消息“子字符串未找到”。

string = "lorem ipsum"
substring = "dolor"
if string.find(substring) != -1:
    print("Substring found!")
else:
    print("Substring not found.")

输出

Substring not found.

使用正则表达式

检查子字符串是否包含在字符串中的另一种方法是使用正则表达式。

示例

在此代码中,我们首先导入re模块,该模块为Python中的正则表达式提供支持。

然后,我们像以前一样定义string和substring变量。

我们使用re.search()函数在字符串中搜索子字符串。re.search()函数搜索字符串中与substring表示的正则表达式匹配的内容。

如果找到匹配项,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()方法。

示例

在此代码中,我们像以前一样定义string和substring变量。

我们使用string变量的startswith()方法检查子字符串是否位于字符串的开头。如果字符串以子字符串开头,则startswith()方法返回True,否则返回False。

我们使用if语句检查string.startswith(substring)的结果是否为True。如果是,则在字符串中找到子字符串,因此我们打印消息“子字符串已找到!”。否则,我们打印消息“子字符串未找到”。

string = "lorem ipsum"
substring = "dolor"

if string.startswith(substring):
    print("Substring found!")
else:
    print("Substring not found.")

输出

Substring not found.

使用列表推导式

检查子字符串是否包含在字符串中的另一种方法是使用列表推导式。

示例

在此代码中,我们再次像以前一样定义string和substring变量。

我们使用列表推导式将字符串拆分为单个单词,并检查子字符串是否包含在任何这些单词中。string变量的split()方法使用空格作为分隔符将字符串拆分为单词列表。然后,列表推导式检查子字符串是否包含在列表中的每个单词中。

我们使用any()函数检查列表推导式返回的列表中的任何值是否为True。如果列表中的至少一个值为True,则any()函数返回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()方法是此任务中最常用的方法。

更新于:2023年8月10日

402 次查看

启动您的职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.