据我所知,.
是java正则表达式中的元字符。但是当我使用它时如下:
String s = "1.2.3.4";
Pattern pattern = Pattern.compile("[\\.]");
我收到了IntelliJ IDEA的Redundant Character Escape
警告。任何解释?
答案 0 :(得分:1)
这是因为方括号。检查一下:
Pattern pattern = Pattern.compile("[\\.]");
System.out.println(pattern.matcher("").find());
System.out.println(pattern.matcher(".").find());
System.out.println(pattern.matcher("a").find());
假
真
假
pattern = Pattern.compile("[.]");
System.out.println(pattern.matcher("").find());
System.out.println(pattern.matcher(".").find());
System.out.println(pattern.matcher("a").find());
假
真
假
如果您要使用方括号外的点,则需要使用转义来捕获点而不是任何字符。