尝试按},{分割时出现PatternSyntaxException

CMa*_*aff 9 java regex split escaping exception

我试图打破我在网站上通过API获取的数组,Java已将其检索为String.

String[] ex = exampleString.split("},{");
Run Code Online (Sandbox Code Playgroud)

A PatternSyntaxException被抛出.出于某种原因,它真的不喜欢},{.我试图逃避它\{,但它说这是一个非法逃脱.

逃避这个字符串的正确方法是什么?

Bol*_*ock 17

出于某种原因,它真的不喜欢},{.

这是因为大括号(}{)是Java正则表达式中的特殊字符.如果你试图在没有转义的情况下逐字地使用它们,那么它被认为是语法错误,因此你的例外.

逃避这个String的正确方法是什么?

通过加倍来逃避反斜杠.这适用于Java字符串转义.然后逃脱的反斜杠将逃脱正则表达式的大括号.

String[] ex = exampleString.split("\\},\\{");
Run Code Online (Sandbox Code Playgroud)