java正则表达式中的冗余字符转义。(点)

时间:2018-03-03 12:45:08

标签: java regex

据我所知,.是java正则表达式中的元字符。但是当我使用它时如下:

    String s = "1.2.3.4";
    Pattern pattern = Pattern.compile("[\\.]");

我收到了IntelliJ IDEA的Redundant Character Escape警告。任何解释?

1 个答案:

答案 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());
  

     

     

如果您要使用方括号外的点,则需要使用转义来捕获点而不是任何字符。