String.matches() 与 \n

W W*_*W W 4 java

为什么当字符串包含时该String::matches方法返回?false\n

public class AppMain2 {

    public static void main(String[] args) {

        String data1 = "\n  London";    
        System.out.println(data1.matches(".*London.*")); // false
    }    
}
Run Code Online (Sandbox Code Playgroud)

Ind*_*ent 5

如果要matches返回true,则需要使用(?s)Pattern.DOTALL

这种方式.匹配任何字符,包括\n

System.out.println(data1.matches("(?s).*London.*"));
Run Code Online (Sandbox Code Playgroud)

或者:

Pattern pattern = Pattern.compile(".*London.*", Pattern.DOTALL);
System.out.println(data1.matches(pattern));
Run Code Online (Sandbox Code Playgroud)