由于{in pattern:java.util.regex.PatternSyntaxException,String.split(pattern)抛出异常

Adr*_*ian 1 java string split

我在Java中有一个String.以下是我关注的部分内容{3: {108:TR2011052300088}}

后来我分手了{3: {108:.出于某种原因(我一直在google搜索){,并}是一个特殊字符,因此必须进行转义\}\{(显然这不起作用- >编译时错误).

其他人提到这是Java正则表达式中的一些错误.我不确定.我得到的例外是:

Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed counted closure near index 2 {3:{108: at java.util.regex.Pattern.error(Unknown Source)

简而言之,我的代码将字符串拆分{3: {108:为分隔符并在其上崩溃:

String query="{3: {108:";
String [] messageParts = message.split(query);
Run Code Online (Sandbox Code Playgroud)

我知道其他方法,虽然更复杂,比如编写我自己的解析器等.

如何进行字符串拆分而不是崩溃?

编辑: 回答一些评论:
- 双斜线没有帮助:\\{\{3:\{108:MAMABEARid123}}2斜杠变为1
- 逃避1斜杠将无法编译:无效的转义序列

ass*_*ias 6

逃避的例子{:

    public static void main(String[] args) {
        String s = "{3: {108:TR2011052300088}}";
        String[] ss  = s.split("\\{3: \\{108:");
        System.out.println(ss[1]); //prints TR2011052300088}}
    }
Run Code Online (Sandbox Code Playgroud)