String str = "one(two)three{four}"
String[] arr = str.split("(\\()(\\{)(\\))(\\}))";
输出应该是这样的:如何分割用定界符的字符串 '(' '{' '} ')在Java''
arr = {"one","two","three","four"};
String str = "one(two)three{four}"
String[] arr = str.split("(\\()(\\{)(\\))(\\}))";
输出应该是这样的:如何分割用定界符的字符串 '(' '{' '} ')在Java''
arr = {"one","two","three","four"};
正则表达式不会编译。
(\() # (1)
(\{) # (2)
(\)) # (3)
(\}) # (4)
= ) <-- Unbalanced ')'
你可能意味着拆就[(){}]+
你应该逃避你的反斜线和添加或:
String str = "one(two)three{four}";
String[] arr = str.split("\\(|\\)|\\{|\\}");
或者你可以用方括号列表:
String str = "one(two)three{four}";
String[] arr = str.split("[(){}]");
这两个选项都会工作
它只是看起来像,由于代码不格式正确 - 反斜线已经由OP逃脱。 –
@ErwinBolwidt它不仅是代码格式 - 它也是或操作数缺失 - 更新回答 – ronhash