私は、文字列中のオプションの単語がどこにあるのか無視する必要がある箇所を見つけようとしています。オプションの単語をスキップするPython正規表現
私が試したコードは次のとおりです。
import re
str = '''
topping consensus estimates
topping analysis' consensus estimate
topping estimate
'''
for m in re.finditer(r'(?P<p3c>topping\s+(?:\w+\s(?!estimate)){0,2}(estimate))',str):
print(m.group())
print('done')
私は、文字列で見つかったすべての3つのケースを取得したいだけ最後を取得します。私はトッピングと推定の間に2単語までスキップしたいが、分析とコンセンサスになるとは保証できない。私は(?:\w+\s(?!estimate)){0,2}
と試して結果を得るために2単語までスキップしましたが、それは何らかの理由で動作しません。
「機能しない」とは何ですか?より具体的にしてください。 –