文字列 "rice with milk" と "white rice" のような文字列があるとします。正規表現を使用して、2 番目の文字列、または「米」が含まれているが「米」が含まれていない文字列を取得したいと考えています。「rice」を含むが「rice with」を含まないすべての文字列のセットとなるセットで話す
^
文字、遊び、グループだけでなく、単語の機能を拡張しようとして|
いますが、解決策が見つかりません。
「否定先読み」を使用してこれを行うことができるはずです。
import re
m1 = re.search('rice(?! with)', 'rice with beans')
m2 = re.search('rice(?! with)', 'white rice is delicious')
if m1:
print 'm1 matches!'
print m1.group(0)
if m2:
print 'm2 matches!'
print m2.group(0)
説明: (?
「先読み」の開始です。これは、正規表現に「この時点で...「この表現」に一致するものが存在する!
はずです。 「この式」が続く。「欲しいものに従ってはいけないもの」の正規表現。(?!
with
space
with
\s