我目前正尝试通过将它们与正则表达式匹配来从字符串中提取子字符串。输入字符串都是foo.bar("""foobar""")
形式,其中foobar是我想要提取的子字符串。
这是我为此任务编写的正则表达式:
Pattern pattern = Pattern.compile(
".+\\(\"{3}(.+)\"{3}\\)" , Pattern.MULTILINE);
它与简单的字符串匹配良好,但只要在要匹配的字符串中出现换行后跟空格,即foo.bar("""foo\n bar""")
我如何更改模式以使其与这些字符串匹配?
答案 0 :(得分:7)
您需要Pattern.DOTALL
而不是Pattern.MULTILINE
。 Pattern.MULTILINE
是关于^
和$
的行为,与使用.
匹配换行符无关:
Pattern pattern = Pattern.compile(
".+\\(\"{3}(.+)\"{3}\\)" , Pattern.DOTALL);