java新行正则表达式

java新行正则表达式,java,regex,eclipse,newline,Java,Regex,Eclipse,Newline,嗨,我正在为Java中的正则表达式捕获正确的组。(我的版本是1.8.091) 这是给定的文档: ** Hi你好bla bla嗨 你好 ** 我要编译的模式是 String pattern = "<ABC>((.|\\n)+?)</ABC>"; String pattern=“((.|\\n)+?)”; 我想捕获第一个“Hi Hello”,它位于同一行,第二个“Hi Hello”由于输入(\n)而写在两个不同的行中。但这行不通。这只捕获第一个“Hi Hello”。如何

嗨,我正在为Java中的正则表达式捕获正确的组。(我的版本是1.8.091)

这是给定的文档:

**

Hi你好bla bla嗨
你好
**

我要编译的模式是

String pattern = "<ABC>((.|\\n)+?)</ABC>";
String pattern=“((.|\\n)+?)”;

我想捕获第一个“Hi Hello”,它位于同一行,第二个“Hi Hello”由于输入(\n)而写在两个不同的行中。但这行不通。这只捕获第一个“Hi Hello”。如何更改上面的正则表达式?

默认情况下。匹配除新行字符外的所有字符

在这种情况下,您将需要DOTALL选项,它将使。匹配任何字符,包括新行字符。DOTALL选项可以内联指定为(?s)。例如:


(?s)(.|\\n)+?)

只是想说明一下-您想使用此模式进行两种不同的匹配吗?首先是
,然后是第二个
?但这就是为什么他用自己的模式写
(.|\\n)
,意思是
新行
String pattern = "<ABC>((.|\\n)+?)</ABC>";