IDEA 编译报错 Dangling metacharacter

原因说明

一般 IDEA 检测到了有需要转义的字符但是没有进行转义会抛出这编译异常

例如:
使用正则表达式匹配一个字符串, 代码如下

public static void main(String[] args) throws Exception {
    String str = "{aa: 'abc', bb: 22, cc: 'abc123', type: 'Array'}";
    // 在这一行中 matches 方法的参数是一个正则表达式, 这里就会抛出 Dangling metacharacter 的异常
    // 因为花括号在正则表达式中有特殊的含义, 所以需要进行转义, 而且要使用双斜杠 \\ 进行转义
    boolean matches = str.matches("{.*:.*}");
    // 上面这个代码的正确写法是
    boolean matches = str.matches("\\{.*:.*\\}");
    System.err.println(matches);
}
posted @ 2022-02-10 21:15  kmswilliam  阅读(730)  评论(0)    收藏  举报