これは非常に新しいので、我慢してください...
事前定義された単語のリストを取得しました
_checklist = ['A','FOO']
_
line.split()
の単語リストは次のようになります
_words = ['fAr', 'near', 'A']
_
checklist
のwords
と完全に一致する必要があるため、「A」のみが見つかります。
_if checklist[0] in words:
_
それはうまくいかなかったので、私はここで見つけたいくつかの提案を試しました:
_if re.search(r'\b'checklist[0]'\b', line):
_
役に立たないのは、どうやらそのようなリストオブジェクトを探すことができないからです...これについて何か助けはありますか?
これにより、完全一致のリストが表示されます。
matches = [c for c in checklist if c in words]
これは次と同じです:
matches = []
for c in checklist:
if c in words:
matches.append(c)
セットを使用すると、リストを反復処理するよりもはるかに高速になります。
checklist = ['A', 'FOO']
words = ['fAr', 'near', 'A']
matches = set(checklist).intersection(set(words))
print(matches) # {'A'}
セットはあなたのニーズを満たします。セットにはissubset
メソッドがあります。例は次のようなものです。
checklist = ['A','FOO']
words = ['fAr', 'near', 'A']
print set(checklist).issubset(set(words))
2つのリストにコメント要素がある場合にのみテストが必要な場合は、intersection
メソッドに変更できます。
これがあなたのために働くかどうか私に知らせてください、
In [67]: test = re.match(r"(.*?)A(.*?)$", "CAT")
[68]の場合:test.group(2)
Out [68]: 'T'
[69]の場合:test.group()
Out [69]: 'CAT'
[70]の場合:test.group(1)
Out [70]: 'C'
のパターンが一致しない場合、テストオブジェクトは存在しません。