2017-01-05 9 views
0

Javaファイル内の2つの中括弧の間のテキストを選択する正規表現を作成しようとしています。中かっこの間のテキストは、複数の行にまたがって表示されます。複数行にわたるテキストを選択するための正規表現

例えば、私は中括弧の間のすべての行を選択する必要が

{ 
    // line1 ; 
    // line 2 ; 
    // line 3 ; 
} 

私は\{[.]*\}を試しましたが、複数の行が選択されていません。

この点についてお勧めします。おかげさまで

+0

この '{[^}] *}' –

答えて

1

あなたはこれを試してみてください...正規表現で改行を追加する必要があります。あなたがする必要があるとして、一般的に、これは良いアイデアではありません

+0

を試すことができます。あなたはほとんどの正規表現の括弧で括弧をエスケープする必要があります。さらに、これは(DOTALLが指定されていない限り)1行でしか動作しません。 – Jan

+0

はい、角括弧をエスケープする必要があります。私はエスケープ文字を入れていたが、それは削除されたと思う。私はそれを編集しました。エスケープ文字を印刷するには、別のエスケープ文字を入れなければなりませんでした。 –

+0

また、中括弧の間に複数の行があっても機能します。それに応じてキャリッジリターン(\ r)を削除する必要があります。 –

2

{\ *(* \ Rの\ nを。)} \入れ子にされた括弧などを考慮する。代わりにパーサを使うほうが良いかもしれません。
これは言われて、あなたは以下の構築物で一緒になるかもしれない:

^\{ 
(.+?) 
^\} 

これはあなたの開閉ブラケットが1行に一人で立っていることを、前提としています。あなたにも空白を許可したい場合、あなたはそれを変更する必要があります:

^\s*\{ 
(.+?) 
^\s*\} 

a demo on regex101.comを参照してください(とIE DOTALLMULTILINE、異なる修飾子を気に!)。

+0

残念ながら私は編集者Atom、Eclipse、Vimのいずれかでこの特定の正規表現を検証することができません:(私はregex101.comでのみ動作していますが、多くのエディタは式フラグをサポートしていないか、 – Omkar

関連する問題