我在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斜杠将无法编译:无效的转义序列
逃避的例子{:
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)