用于文本的简单筛选Python脚本
我试图创建一个简单的过滤函数,它对文本文件运行正则表达式并返回包含该正则表达式的所有单词 例如,如果我想找到所有包含abc的单词,我有一个列表:abcde,bce,xyz和zyxabc,脚本将返回abcde和zyxabc 我下面有一个脚本,但是我不确定它是否只是我失败的正则表达式。它只返回abc两次,而不是完整的单词。谢谢用于文本的简单筛选Python脚本,python,regex,search,filter,Python,Regex,Search,Filter,我试图创建一个简单的过滤函数,它对文本文件运行正则表达式并返回包含该正则表达式的所有单词 例如,如果我想找到所有包含abc的单词,我有一个列表:abcde,bce,xyz和zyxabc,脚本将返回abcde和zyxabc 我下面有一个脚本,但是我不确定它是否只是我失败的正则表达式。它只返回abc两次,而不是完整的单词。谢谢 import re text = open("test.txt", "r") regex = re.compile(r'(abc)') for line in text:
import re
text = open("test.txt", "r")
regex = re.compile(r'(abc)')
for line in text:
target = regex.findall(line)
for word in target:
print word
我认为你不需要正则表达式来完成这样的任务,你可以简单地将行拆分,创建一个单词列表,然后在单词列表上循环,并在操作符中使用:
with open("test.txt") as f :
for line in f:
for w in line.split():
if 'abc' in w :
print w
我认为你不需要正则表达式来完成这样的任务,你可以简单地将行拆分,创建一个单词列表,然后在单词列表上循环,并在操作符中使用:
with open("test.txt") as f :
for line in f:
for w in line.split():
if 'abc' in w :
print w
您的方法是正确的,但是,您可以将正则表达式更改为r'.*abc.*'
regex = re.compile(r'.*abc.*')
这将使所有行与通配符中的abc匹配。*`将匹配行中的所有字母
将打印一个更改了特定行的小演示
abcde
zyxabc
注意,由于Kasra,在这种情况下最好使用in operator,但是您的方法是正确的,您可以将正则表达式更改为r'.*abc.*'
regex = re.compile(r'.*abc.*')
这将使所有行与通配符中的abc匹配。*`将匹配行中的所有字母
将打印一个更改了特定行的小演示
abcde
zyxabc
注意,与Kasra一样,在这种情况下,最好在operator中使用