java.matches()不匹配

java.matches()不匹配,java,regex,Java,Regex,我有一段代码: String myString; boolean myResult; myString = "First\nSecond\nThird\nFourth"; myResult = myString.matches("First.*"); myResult = myString.matches(".*First.*"); myResult = myString.matches(".*Second.*"); myResult = myString.matches("First\nSe

我有一段代码:

String myString;
boolean myResult;

myString = "First\nSecond\nThird\nFourth";
myResult = myString.matches("First.*");
myResult = myString.matches(".*First.*");
myResult = myString.matches(".*Second.*");
myResult = myString.matches("First\nSecond\nThird\nFourth");
最后一个返回true,其余的都是false


我想上面所有的表达都会变成真的。我还需要找到以“First”开头的字符串,我原以为First.matches()会覆盖它,但它没有。它应该是什么样子?

*可能不匹配\n


将上次匹配模式中的一个替换为。看看会发生什么

*可能不匹配\n

将上次匹配模式中的一个替换为。看看会发生什么

请参见:

。任何字符(可能与行终止符匹配,也可能不匹配)

见:

。任何字符(可能与行终止符匹配,也可能不匹配)


默认情况下,点与行尾字符不匹配,但如果在正则表达式字符串前面加上(?s),则它将与它们匹配。这将启用匹配标志。

默认情况下,点不匹配行尾字符,但如果在正则表达式字符串前面加上(?s),则它将与它们匹配。这将启用匹配标志。

您可以尝试按字面指定\n\r:

myResult = myString.matches("First(.|[\n\r])*")

您可以尝试按字面指定\n\r:

myResult = myString.matches("First(.|[\n\r])*")