我的 Python 正则表达式代码找不到连续的字符集



我正在编写一个程序,以确定.txt文件中是否有三组连续的双字母(例如bookkeeper(。到目前为止,我有:

import re
text = open(r'C:UsersJimbo.WimboDesktopList.txt')
for line in text:

x = re.finditer(r'((w)2)+', line)
if True:
print("Yes")
Else:
print("No")

CCD_ 1有5个单词。有一个单词的末尾有三组连续的双字母,但它打印的是5〃;是"s.使用re和os,我能做些什么来修复它?

您不需要re.finditer(),只需使用re.search()即可。

您的regexp是错误的,它将至少匹配1组重复字符,而不是3个。

if True:没有做任何有用的事情。这并不意味着";如果最后一个赋值是真值";。您需要测试regexp搜索的结果。

使用any()测试条件是否与文件中的任何一行匹配。您的代码将为文件中的每一行打印"是"或"否"。

if any(re.search(r'((w)2)){3}', line) for line in text):
print('Yes')
else:
print('No')

我认为您的正则表达式不正确。检查正则表达式的一个好方法是使用在线正则表达式检查器,您可以根据提供的任何数量的字符串测试正则表达式。

以下是您查询的一个可能解决方案:

import re
text = open(r'C:UsersJimbo.WimboDesktopList.txt')
for line in text:
x = len(re.findall(r'(.)1', line))
if x == 3:
print(f"Found a word with 3 duplicate letters : {line}")
else:
print(f"Word: {line}, Duplicate letters : {x}")

希望这能有所帮助。

最新更新