他の文字列で文字列を検索するために正規表現を使用しようとすると、期待どおりに機能しません。次に例を示します。
import re
message = 'I really like beer, but my favourite beer is German beer.'
keywords = ['beer', 'german beer', 'german']
regex = re.compile("|".join(keywords))
regex.findall(message.lower())
結果:
['beer', 'beer', 'german beer']
しかし、期待される結果は次のようになります。
['beer', 'beer', 'german beer', 'german']
これを行う別の方法は次のとおりです。
results = []
for k in keywords:
regex = re.compile(k)
for r in regex.findall(message.lower()):
results.append(r)
['beer', 'beer', 'beer', 'german beer', 'german']
それは私が望むように機能しますが、それを行うための最良の方法ではないと思います。誰かが私を助けることができますか?