2017-03-03 3 views
-1

は、私は一度だけしかKm文字列にしてを表示Kmを見つけたい正規表現のマッチのみ1時間

"Km.Km" 
    "Vmax.Km" 
    "Kcat.Km" 
    "Km" 

ようなマルチ文字列を見てみましょう。 この場合、Kmが私の答えです。 ^(?!.*(Kcat|Vmax)).*Km.*$を試しましたが、kmのようにKm.Kmのように表示されます。kmは1回だけ必要です。

+0

をあなたが使用しているコードはどこですか?それはおそらく含めるのに役立つだろう。 –

+0

文字列に何が含まれていなければならないか、何が欠けていなければならないかを明示してください。 –

+0

'v4.Vmax.div.v4.Km.X8'と' v4.Kcat.mul.v4.Km.X9'が除外されているのはなぜですか?彼らは 'Km'を1回ずつ持っていますか? – ShadowRanger

答えて

2

それはあなたの要件は試合のためのものですが、あなたが知っている場合は、Kmあなたが

In [44]: for item in items: 
    ...:  print(re.findall(r'^\w+\.Km\.\w+$', item)) 
    ...:  
[] 
[] 
[] 
[] 
['v4.Km.X9'] 
['v4.Km.X10'] 
0

このお試しください使用することができ、中央のグループに一度だけ表示したいものを非常に明確ではありません。

re.findall(r'(?i)\b[^.]km\b',string) 
Out[40]: [' Km']