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

问题描述 投票:0回答:1

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

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

我收到了IntelliJ IDEA的qazxsw poi警告。任何解释?

java regex
1个回答
1
投票

这是因为方括号。检查一下:

Redundant Character Escape

真正

Pattern pattern = Pattern.compile("[\\.]");
System.out.println(pattern.matcher("").find());
System.out.println(pattern.matcher(".").find());
System.out.println(pattern.matcher("a").find());

真正

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

© www.soinside.com 2019 - 2024. All rights reserved.