2016-04-06 9 views
0

を先行反転パターンと一致する文字列:'=trimheaderspace' or 'old.trimheader' or 'get trimheader()'等...しかしNOT」... = cxdef:正規表現:これはコードである他のパターン

(?!cxdef\.)trimheader

私は、それはいずれにもマッチします。 trimheaderspace() "

私は 'cxdef'を望んでいません。 'trimheader'に先立って。

非常に簡単ですが、コードは機能しません。何か案が ?

+0

先読みではなく、先読みを使用 –

答えて

2

あなたはゼロ幅否定後読み使用する必要があります:私はちょうど?!にわたってるしき<を追加

(?<!cxdef\.)trimheader 

:私はここに、コードを私の質問に対する答えを見つけることが

>>> def out_match(st): 
...  return st if re.search(r'(?<!cxdef\.)trimheader', st) else None 
... 
>>> out_match('=trimheaderspace') 
'=trimheaderspace' 
>>> out_match('cxdef.trimheaderspace()') 
>>> 
0

を否定的な見返りを作る。それは 'cxdef.trimheader'以外と一致します。

+0

すでに回答を確認しましたか?これはちょうど与えられた答えが言及されたものです。 – heemayl

+0

ありがとう、私はあなたの記事を読む前に、この答えを得ました。実際に私はここからそれを得た:https://www.youtube.com/watch?v=aIEjh0YsxWA。これは単純なLookaheadチュートリアルビデオです。ありがとう – andio

+0

また、ここでは、そのビデオで使用されて再生するための良いツール:http://regexr.com/v1/ http://gskinner.comによって作ら – andio