任何字符,包括换行符 - Java Regex

Mic*_*ick 38 java regex

我以为它可能是[.\n] +但这似乎不起作用?

Art*_*cto 60

点不能在字符类中使用.

请参见Pattern.DOTALL选项.

Pattern.DOTALL启用dotall模式.在dotall模式下,表达式.匹配任何字符,包括行终止符.默认情况下,此表达式与行终止符不匹配.也可以通过嵌入的标志表达式启用Dotall模式(?s).(s是"单行"模式的助记符,这是在Perl中调用的.)

如果只需要正则表达式的一部分,则使用eg [\s\S].

  • 在Java中,只需执行`(?s:`...`)`为特定部分启用DOTALL模式,并停止担心愚蠢的操作系统. (11认同)
  • 或者,当然,`(?s)```(? - s)`在这些点上切换然后关闭. (5认同)
  • 可以说,比([?s.S]`更干净的是((?:。| \ n))。`[。\ n]`不起作用的原因是`.`在字符类中不是特殊的。用文字或`|`指定相同的内容可以正常工作。 (2认同)

Jas*_* L. 37

编辑:虽然我的原始答案在技术上是正确的,正如ThorSummoner指出的那样,它可以更有效地完成

[\s\S]

(.|\n)或相比(.|\n|\r)

  • 这看起来非常昂贵,`[\ s\S]`似乎在正则表达式上对正则表达式引擎有很多帮助. (4认同)