要捕获重复单词之间的正则表达式,可以使用反向引用。下面是一个示例代码:
import re
# 输入字符串
string = "This is a test test string string with repeated words words."
# 定义正则表达式模式
pattern = r"\b(\w+)\b\s+(\1)\b"
# 使用re.findall()函数查找所有匹配的重复单词
matches = re.findall(pattern, string)
# 打印匹配结果
for match in matches:
print("重复单词:", match[0])
输出结果为:
重复单词: test
重复单词: string
重复单词: words
在上面的示例中,我们使用了正则表达式模式r"\b(\w+)\b\s+(\1)\b"
来捕获重复的单词。这个模式使用了以下几个元素:
\b
:单词边界,用于确保只匹配完整的单词。(\w+)
:捕获组,用于匹配一个或多个字母、数字或下划线字符,表示一个单词。\s+
:匹配一个或多个空格字符。(\1)
:反向引用,引用捕获组1中的内容。\b
:单词边界,用于确保只匹配完整的单词。使用re.findall()
函数可以查找出所有匹配的重复单词,并将它们存储在一个列表中。然后我们可以遍历列表并打印出每个匹配的重复单词。
注意:这个示例中只考虑了连续重复的单词,如果要匹配非连续重复的单词,可以使用re.finditer()
函数来逐个迭代匹配结果。