2017-01-25 5 views
0

reg表現よりも前に(?s)使用を指摘していますが、期待以上に多くの答えが出てきました。私はEclipse Neonで検索を使用しています。regexを使って複数の行をマッチさせる方法

例:私はそうLINE1最初};で試合ストップを作りたいながら

Line 1: String[] str1 = new String[] {"a", "b", 
Line 2:  "c", "d"}; 
Line 3: String[] str2 = new String[] {"aa", "bb", 
Line 4:  "cc", "dd"}; 

正規表現(?s)(\w+)\[\] (\w+) = new .+ (\{.*\});は、最後の};にマッチング停止し、4行に1行にマッチします\ 2とLINE3 \ 4別々にマッチさせることができます。

+0

あなたのコードはどこですか? –

+0

Line1〜Line4というラベルのコードです。フォーマットが更新されました。 – Lee

+0

IDEタグを削除して言及しました。 IDE固有の問題の場合は、それがどのようなものか説明してください。 – weston

答えて

1

は単に?.*後の修正問題を置く:

(?s)(\w+)\[\] (\w+) = new [^{]+ (\{.*?\}); 

これは、可能な限り{}の間にいくつかの文字と一致します。

+0

私はあなたの正規表現をコピーしましたが、違いはありません、まだすべての4行に一致します。 – Lee

+0

@Lee本当に?こちらのhttp://regexr.com/3f5aeをご覧ください。これは、javascriptで動作するようにいくつかの変更を加えて動作しますが、Javaでも同じように動作するはずです。多分何か間違っているかもしれません。 –

+0

@Lee実際には申し訳ありませんが、私の悪い私は正規表現を間違ってコピー:/私は新しい正規表現で質問を更新しました。 –

関連する問題