【问题标题】:java new line regular expressionjava换行正则表达式
【发布时间】:2017-09-28 14:31:42
【问题描述】:

您好,我正在为 Java 中的正则表达式捕获正确的组。 (我的版本是1.8.0_91)

这是给定的文档:

**

<ABC>Hi Hello</ABC> bla bla bla <ABC>Hi
Hello</ABC>

**

我的编译模式是

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

我想捕获在同一行中的第一个'Hi Hello',以及由于输入(\n)而写在两个不同行中的第二个'Hi Hello'。但它不会起作用。这仅捕获第一个“Hi Hello”。上面的正则表达式应该怎么改?

【问题讨论】:

  • 只是为了明确 - 您想使用此模式进行 2 个不同的匹配吗?第一个&lt;ABC&gt;...&lt;/ABC&gt; 然后第二个&lt;ABC&gt;...&lt;/ABC&gt;?

标签: java regex eclipse newline


【解决方案1】:

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

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

(?s)&lt;ABC&gt;((.|\\n)+?)&lt;/ABC&gt;

【讨论】:

  • 但这就是为什么他用他的模式写(.|\\n),意思是.newline
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-24
  • 1970-01-01
  • 2015-12-29
  • 2015-03-21
  • 2019-08-02
相关资源
最近更新 更多