2

Eclipse の検索start(で、コメント行を除くすべての行を検索するのに役立つ正規表現を作成しようとしています。

つまり、次のような行を見つけます。

 is not sufficient because it doesn't guarantee that start(b) is 

しかし、次のような行ではありません:

 * is not sufficient because it doesn't guarantee that start(b) is

正規表現を思いつくことができましたが、両方の(\s*?)(?!\*)(.*)(start\()(.*$)が見つかりました。

で始まる行*(おそらくいくつかの空白の後) を除外し、それを持たない行を含めるにはどうすればよいですか?

4

3 に答える 3

3

空白で始まる行の場合、 が\s*?ゼロ(?!\*)の空白に一致し、次に が空白に一致し、.*トレーラーがアスタリスクを含む行の残りの部分に一致する可能性があります。

解決策は、先頭の空白のプリアンブルを否定句の中に入れることです。

^(?!\s*\*).*start\(.*$

別の方法として、所有量指定子を使用して、すべての空白を食べてバックトラックしないようにすることもできます。

^\s*+(?!\*).*start\(.*$
于 2012-08-14T22:23:53.303 に答える
1
^\s*+(?=[^\*]).*?start\(

^行頭です

\s*+空白の消費に貪欲です

(?=は先読みです - 位置に一致しますが、テキストには一致しません。これにより、探しているものが最初に表示されます。

[^\*]*以外の任意の文字です

)先読みを終了する

.*?古いゴミに遅延マッチ

start\(またはあなたが見つけたいものは何でも

于 2012-08-14T22:55:22.187 に答える
0

私はこれを試してみます^\s*[^\*]+.*start\(.*$

于 2012-08-14T22:29:28.163 に答える