0

私は何のregを理解できないようです。式 表記法は私のニーズに合っています:

DEBUG() マクロでいくつかのデバッグ コードをラップしました...

たとえば、ログ レベル 1 でデバッグ出力を出力するには、次のコードを使用します。

DEBUG_LVL_1(printf("some text");)

ただし、これは常に、どこでも当てはまるわけではありません。マクロ ラッパーのない printf ステートメントを使用することがあります。これらのケースを検索して置換したい...つまり、 DEBUG_LVL_ マクロが存在しないが、printfステートメントが存在する場合...

それ、どうやったら出来るの?

4

2 に答える 2

1

選択した言語/ツールで先読みがサポートされている場合は、使用できます

^(?!.*DEBUG_LVL_1).*printf

(?!^.*DEBUG_LVL_1)否定先読みアサーションDEBUG_LVL_1です。文字列のどこかに が見つかった場合、これは失敗します。

したがって、この正規表現は に一致しますが、同じ行にどこにprintfもない場合に限ります。DEBUG_LVL_1

ここでRegexrを参照してください

于 2012-06-04T09:32:33.043 に答える
1

ほら^((?!DEBUG_LVL_1)printf.*)$、ところで、このサイトhttp://rubular.comを使用して、正規表現を確認してください

于 2012-06-04T09:34:21.770 に答える