mic*_*ith 0 java string crash split
在String上进行拆分时遇到一个非常奇怪的问题.崩溃的代码的第二行崩溃:
String[] parts1 = "2 xy 3".split("xy"); //OK!
String[] parts2 = "2 ** 3".split("**"); //CRASHES java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 1: **
Run Code Online (Sandbox Code Playgroud)
试试这个:
String[] parts2 = "2 ** 3".split("\\*\\*");
Run Code Online (Sandbox Code Playgroud)
问题是它*在正则表达式模式中具有特殊含义,因此解决方法是使用双斜杠(因为单斜杠会要求转义字符)*
有关正则表达式如何在java中工作的更多信息,可能我在SlideShare上的幻灯片很有用.