2016-07-29 11 views
1

私の正規表現を動作しません、私が一致することを期待何貪欲ない正規表現は

@Time blah blah @TIME(1d) blah @NOW(12312) 12:32:25 blah @TODAY(12312) 12:32:25 

@NOW(12312) 12:32:25 
+0

は、12: 32:25'の場合、[@NOW \([0-9] + \)\ s + [0-9:] + '](https://regex101.com/r/nM7nP1/1)のみが必要です。 –

答えて

1

代わり.*の否定文字クラスを使用します:

@((TIME|NOW|TODAY)\([^@]*?\)\s+[0-2]?[0-9]:[0-5][0-9]:[0-5][0-9]) 

RegEx Demo

[^@]*はない@は、このよう@から始まる他の文字列にマッチされていない任意の文字の0以上に一致します。

、あなたは否定先読みベースの正規表現を使用することができ、あなたのマッチした文字列で@を持つ可能性がある場合:あなたはちょうど `@NOW(12312)と一致する必要がある場合

@((?:TIME|NOW|TODAY)\((?:([email protected](?:TIME|NOW|TODAY)).)*\)\s+[0-2]?[0-9]:[0-5][0-9]:[0-5][0-9]) 

RegEx Demo2

関連する問題