String pattern matching problem in Java

前端 未结 2 1497
春和景丽
春和景丽 2021-02-18 20:45

In my program when I\'m using

line.replaceAll(\"(\", \"_\");

I got a RuntimeException:

 at java.util.regex.Pattern         


        
相关标签:
2条回答
  • 2021-02-18 21:33

    The first argument to string.replaceAll is a regular expression, not just a string. The opening left bracket is a special character in a regex, so you must escape it:

    line.replaceAll("\\(", "_");
    

    Alternatively, since you are replacing a single character, you could use string.replace like so:

    line.replace('(', '_');
    
    0 讨论(0)
  • 2021-02-18 21:35

    The error message above the stack trace is (somewhat) helpful:

    Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed group near index 1 ( ^

    (That's what I get in Java 6.) It mentions "regex", "group", and the parenthesis. If you can't see this message, you should check how you're logging/catching/displaying exceptions. It could save you some trouble in the future.

    0 讨论(0)
提交回复
热议问题