Java正则表达式:将子串与新行匹配,后跟空格

jba*_*ter 1 java regex whitespace newline

我目前正试图通过将它们与正则表达式匹配来从字符串中提取子字符串.输入字符串都是以形式存在的foo.bar("""foobar"""),其中foobar是我想要提取的子字符串.这是我为此任务编写的正则表达式:

Pattern pattern = Pattern.compile(
            ".+\\(\"{3}(.+)\"{3}\\)" , Pattern.MULTILINE);
Run Code Online (Sandbox Code Playgroud)

它与简单的字符串很好地匹配,但是只要在要匹配的字符串中出现换行后跟空格,即失败 foo.bar("""foo\n bar""")

我如何更改我的模式以便它也匹配这些字符串?

axt*_*avt 7

你需要Pattern.DOTALL而不是Pattern.MULTILINE.Pattern.MULTILINE是关于和的行为,^并且$与匹配换行符无关.:

Pattern pattern = Pattern.compile(
     ".+\\(\"{3}(.+)\"{3}\\)" , Pattern.DOTALL); 
Run Code Online (Sandbox Code Playgroud)