0

文字列を認識するEclipseで正規表現を書こうとしています

X.printStackTrace();

ここで、「X」は例外変数になります。私の表現は次のとおりです。

([^\*\/\/\s])(.*)\Q.printStackTrace();\E

これは、単一行に複数の printStackTrace ステートメントがある場合の 3 行目を除き、正しく機能します。

/* e.printStackTrace();
   e.getMessage();
   e.printStackTrace();e.printStackTrace(); e.printStackTrace();
   e.printStackTrace();*/
/* e.printStackTrace();
   e.getMessage();*/
/*
// e.printStackTrace();
   e.getMessage();
*/

検索のみが必要な場合、正規表現はどうあるべきか誰か教えてもらえますか

X.printStackTrace();

3行目に?

4

2 に答える 2

0

あなたはこれを見ているかもしれません:

((?:\w+.printStackTrace\(\);\s*)+?)

ここで試合をチェックしてください。

EDIT:(Rubularでの私の正規表現出力)

/* e.printStackTrace();

e.getMessage();

e.printStackTrace();e.printStackTrace(); e.printStackTrace();

e.printStackTrace();* /

/ *e.printStackTrace();

e.getMessage(); / /

// e.printStackTrace();

e.getMessage(); */

編集

そのためには、作成するパターンを に調整する必要がありgreedy (+)ますungreedy (+?)

于 2013-06-06T10:01:15.070 に答える