使用 Python 正则表达式查找给定字符串中"1(0+)1"的所有模式

pythonserver side programmingprogramming

在本教程中,我们将编写一个程序,使用正则表达式查找字符串中 1(0+1) 的所有出现位置。我们在 Python 中有一个 re 模块,可帮助我们使用正则表达式。

让我们看一个示例案例。

输入:
string = "Sample 1(0+)1 string with 1(0+)1 unwanted patterns 1(0+)1"输出:
模式匹配的总数为 3 ['1(0+)1', '1(0+)1', '1(0+)1']

按照以下步骤编写程序代码。

算法

1. 导入 re 模块。
2. 初始化字符串。
3. 使用正则表达式创建一个正则表达式对象,该对象使用 re.compile() 与模式匹配。请记住将原始字符串传递给函数,而不是通常的字符串。
4. 现在,使用来自上述步骤的正则表达式对象和 regex_object.findall() 方法匹配模式的所有出现。
5. 上述步骤返回一个匹配对象,并使用 match_object.group() 方法打印匹配的模式。

让我们看看代码。

示例

# 导入 re 模块
import re
# 初始化字符串
string = "Sample 1(0+)1 string with 1(0+)1 unwanted patterns 1(0+)1"
# 为我们的模式创建一个正则表达式对象
regex = re.compile(r"\d\(\d\+\)\d") # 此正则表达式对象将查找所有为 1(0+)1 的模式
# 使用 regex.findall() 方法将所有匹配模式存储在变量中
result = regex.findall(string) # 结果是一个匹配对象
# 打印模式的频率
print(f"模式匹配总数为 {len(result)}")
print()
# 使用 result.group() 方法从字符串打印匹配项
print(result)

输出

如果运行上述代码,您将获得以下输出。

模式匹配总数为 3
['1(0+)1', '1(0+)1', '1(0+)1']

结论

如果您对本教程有任何疑问,请在评论部分中提及。


相关文章