我正在尝试创建一个必须是简单的过滤器函数,它对文本文件运行正则表达式并返回包含该特定正则表达式的所有单词。
所以例如,如果我想找到包含" abc"的所有单词,我就有了列表:abcde
,bce
,xyz
和{{ 1}}该脚本将返回zyxabc
和abcde
。
我有一个下面的脚本但是我不确定它是否只是我失败的正则表达式。它只返回abc两次而不是完整的单词。谢谢。
zyxabc
答案 0 :(得分:2)
我认为您不需要正则表达式执行此类任务,只需split
您的行创建一个单词列表然后循环您的单词列表并使用in
运算符:
with open("test.txt") as f :
for line in f:
for w in line.split():
if 'abc' in w :
print w
答案 1 :(得分:2)
您的方法是正确的,但是,从某种意义上说,您可以将正则表达式更改为r'.*abc.*'
regex = re.compile(r'.*abc.*')
这将匹配abc
中The wildcards
的所有行。*`将匹配行中的所有字母。
更改了特定行的小型演示将打印
abcde
zyxabc
注意,作为Kasra mentions,在这种情况下最好使用in
运算符