您知道为什么此Java测试用例失败吗?
@Test
public void newlineParse() throws Exception {
Pattern pat = Pattern.compile("a.*b", Pattern.MULTILINE);
assertTrue(pat.matcher("a\nb").find());
}
答案 0 :(得分:6)
我认为问题是Pattern.MULTILNE
不正确。对于特定示例,它应为Pattern.DOTALL
(或将?s嵌入表达式中)。
启用多行模式。
在多行模式下,表达式^和$分别在行终止符或输入序列的结尾之后或之前匹配。默认情况下,这些表达式仅在整个输入序列的开头和结尾匹配。
也可以通过嵌入式标志表达式(?m)启用多行模式。
在dotall模式下,表达式。匹配任何字符,包括行终止符。默认情况下,此表达式不匹配行终止符。