2011-02-03 31 views
1

現在、文字列からサブストリングを正規表現と照合して抽出しようとしています。入力文字列の形式はすべてfoo.bar("""foobar""")です。foobarは抽出したい部分文字列です。 これは私がこの仕事のために書いた正規表現です:Java正規表現:部分文字列と改行文字の後に空白文字をマッチングする

Pattern pattern = Pattern.compile(
      ".+\\(\"{3}(.+)\"{3}\\)" , Pattern.MULTILINE); 

それは単純な文字列に対しても一致しますが、空白文字が続く改行を一致させる文字列で発生するたびに失敗し、どのようにすなわちfoo.bar("""foo\n bar""")

それらの文字列にも一致するようにパターンを変更する必要がありますか?

答えて

7

Pattern.MULTILINEの代わりにPattern.DOTALLが必要です。私が使用して私のパターンを途中で変更したときに、 `私はDOTALLでMULTILINEを交換するのを忘れて:-)それをやった

Pattern pattern = Pattern.compile(
    ".+\\(\"{3}(.+)\"{3}\\)" , Pattern.DOTALL); 
+0

ありがとうございました、その:Pattern.MULTILINE^$の行動についてであると.とのマッチング改行とは何の関係もありません012(笑)。冗談です。 – jbaiter

+1

JeanMarie、答えの左側にあるチェックマークをクリックすると、彼は答えることができます。 – jluzwick

関連する問題