猿问

在 Java 正则表达式中如何匹配换行符

知道为什么这个 Java 测试用例失败了吗?


@Test

public void newlineParse() throws Exception {

    Pattern pat = Pattern.compile("a.*b", Pattern.MULTILINE);

    assertTrue(pat.matcher("a\nb").find());

}


红颜莎娜
浏览 277回答 1
1回答

宝慕林4294392

我认为问题在于这Pattern.MULTILNE是不正确的。对于特定示例,它应该是Pattern.DOTALL(或在表达式中嵌入 ?s)。多行:启用多行模式。在多行模式下,表达式 ^ 和 $ 分别匹配行终止符或输入序列的结尾之后或之前。默认情况下,这些表达式仅匹配整个输入序列的开头和结尾。也可以通过嵌入的标志表达式 (?m) 启用多行模式。打点:在 dotall 模式下,表达式 . 匹配任何字符,包括行终止符。默认情况下,此表达式不匹配行终止符。一个使用 DOTALL 的工作示例
随时随地看视频慕课网APP

相关分类

Java
我要回答