String.split与**崩溃

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)

Sar*_*tal 5

试试这个:

String[] parts2 = "2 ** 3".split("\\*\\*");
Run Code Online (Sandbox Code Playgroud)

问题是它*在正则表达式模式中具有特殊含义,因此解决方法是使用双斜杠(因为单斜杠会要求转义字符)*

有关正则表达式如何在java中工作的更多信息,可能在SlideShare上的幻灯片很有用.