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