【发布时间】:2013-11-24 08:06:43
【问题描述】:
我正在使用 Python 2.7.2 脚本来查找我用作主单词列表的文本文件中的单词列表。
我在终端窗口中调用脚本,输入任意数量的正则表达式,然后运行脚本。
所以,如果我传入两个正则表达式“^.....$”和“.*z”,它将打印每个包含至少一个“z”的五个字母的单词。
我想要做的是添加另一个正则表达式来排除字符串中的一个字符。我想打印出所有有五个字母的单词,一个“z”,但是 -not- 一个“y”。
代码如下:
import re
import sys
def read_file_to_set(filename):
words = None
with open(filename) as f:
words = [word.lower() for word in f.readlines()]
return set(words)
def matches_all(word, regexes):
for regex in regexes:
if not regex.search(word):
return False
return True
if len(sys.argv) < 3:
print "Needs a source dictionary and a series of regular expressions"
else:
source = read_file_to_set(sys.argv[1])
regexes = [re.compile(arg, re.IGNORECASE)
for arg in sys.argv[2:]]
for word in sorted(source):
if matches_all(word.rstrip(), regexes):
print word,
我可以在传递给程序的正则表达式上添加哪些修饰符,以允许我从它打印的字符串中排除某些字符?
如果不可能,代码中需要实现什么?
【问题讨论】: