2017-03-24 5 views
-2

.javaのファイルをすべてif conditionsで検索したいと思います。.javaファイルの "if condition"を検索

私はファイルとパターンを検索条件に読み込むためにBufferedReaderを使用しています。

私のファイルがこれを見たときに、すべての ifが、検索

私のプログラム:

// {}

場合、私は悪い結果を得ます。コメントに条件なし - (if{の間のスペースでもif{}if {})、

私は条件がいる場合にのみ有効取得したいです。

どのように見えるでしょうregex

全コード:http://pastebin.com/55RMfwg2

+0

あなたの問題は単一の正規表現で解決するには複雑すぎると思います。 '// if {}'の問題がある場合、/*...*/コメントブロックの途中でif条件を実行するとどうなりますか?正規表現はその行を区別することができません。完全なJavaパーサを使用する必要があるかもしれません。 – ProgrammersBlock

+0

ファイルを最初にクリーニングする(新しい行や複数の空白、コメントなどを削除する)ことをお勧めします。 – Shadov

答えて

4
^(?!a\\/\\/) *if *\\{(.|\n)*} 

//それその前後の任意のスペース、 とせず、それはまた閉じ括弧}をキャッチし、括弧の間に改行文字を許可する場合は、この正規表現は探します。 さらに、ifの前にスペースを入れます。

複数行のコメント/* */もスキップする必要がある場合は、他の人が書いたように、前にファイルを消去する方が簡単だと思います。

正確な正規表現を見つけるのに役立つ多くのウェブサイトがありますが、私はRegExrをお勧めします。

+0

{は、繰り返しインジケータを開始しようとしている正規表現エンジンのインジケータです。\\ –

+0

でエスケープする必要があります。しかし、 "ifif"で2つの条件が見つかった場合は、ホット正規表現を修正しますか? – Dominik