Python 2.7.2 スクリプトを使用して、マスター単語リストとして使用しているテキスト ファイル内の単語のリストを検索しています。
ターミナル ウィンドウでスクリプトを呼び出し、任意の数の正規表現を入力して、スクリプトを実行しています。
したがって、2 つの正規表現 "^.....$" と ".*z" を渡すと、少なくとも 1 つの "z" を含む 5 文字の単語がすべて出力されます。
私がやろうとしているのは、別の正規表現を追加して、文字列から文字を除外することです。「y」ではなく「z」の 5 文字を含むすべての単語を出力したいと思います。
コードは次のとおりです。
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,
プログラムが出力する文字列から特定の文字を除外できるようにするために、プログラムに渡す正規表現にどの修飾子を追加できますか?
それが不可能な場合、コードに何を実装する必要がありますか?