0

文字列 "rice with milk" と "white rice" のような文字列があるとします。正規表現を使用して、2 番目の文字列、または「米」が含まれているが「米」が含まれていない文字列を取得したいと考えています。「rice」を含むが「rice with」を含まないすべての文字列のセットとなるセットで話す

^文字、遊び、グループだけでなく、単語の機能を拡張しようとして|いますが、解決策が見つかりません。

4

2 に答える 2

3

「否定先読み」を使用してこれを行うことができるはずです。

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)

説明: (?「先読み」の開始です。これは、正規表現に「この時点で...「この表現」に一致するものが存在する!はずです。 「この式」が続く。「欲しいものに従ってはいけないもの」の正規表現。(?!withspacewith\s

于 2013-10-15T03:49:52.563 に答える
0

これには否定先読みを使いたいと思いますが、

    r'.*rice(?! with).*' 

ここでテスト

于 2013-10-15T03:46:44.947 に答える