今天在测试项目程序的时候,发现了点小问题,想要改变一下代码逻辑,遇到如下问题:
String str = "aaaaaaa}/{bbbbbbb";
System.out.println(str.split("}/{"));
运行报错:Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition near index 1 }/{
这里是将"}/{"当作了表达式出现了错误,百度不到解决办法,只有类似的"|"或者"."等字符串需要用反斜杠转义,如"\\|"或"\\."
因此将"}/{"作为一个特例记录下来,正确写法是
str.split("\\}\\/\\{")
小伙伴说可以总结一下,把需要转义的字符串全列出来,我觉得有道理,但是忙或者懒,总之先这样以后再更新。
刚写完就打脸,借鉴别人的博客,需要转义的字符如下:
( [ { } ] ) ? * + . / ^ - $ ¦