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

pythonserver side programmingprogramming

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

例如,在字符串"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("找到子字符串!")
else:
    print("未找到子字符串。")

输出

找到子字符串!

使用 find() 方法

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

示例

在此代码中,我们定义字符串和子字符串变量,如下所示。

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

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

string = "lorem ipsum"
substring = "dolor"
if string.find(substring) != -1:
    print("找到子字符串!")
else:
    print("未找到子字符串。")

输出

未找到子字符串。

使用正则表达式

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

示例

在此代码中,我们首先导入 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("找到子字符串!")
else:
    print("未找到子字符串。")

输出

找到子字符串!

使用 startswith() 方法

检查子字符串是否包含在字符串中的另一种方法是使用 startswith() 方法。

示例

在此代码中,我们像以前一样定义字符串和子字符串变量。

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

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

string = "lorem ipsum"
substring = "dolor"

if string.startswith(substring):
    print("找到子字符串!")
else:
    print("未找到子字符串。")

输出

未找到子字符串。

使用列表推导式

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

示例

在此代码中,我们再次像以前一样定义字符串和子字符串变量。

我们使用列表推导式将字符串拆分为单个单词,并检查子字符串是否包含在这些单词中的任何一个中。字符串变量的 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("找到子字符串!")
else:
    print("未找到子字符串。")

输出

找到子字符串!

所以这些是在 Python 中检查子字符串是否包含在字符串中的一些不同方法!根据您的具体用例,一种方法可能比另一种方法更合适。但一般来说,"in"运算符和 find() 方法是此任务最常用的方法。


相关文章