为什么当字符串包含时该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)
如果要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)