如何在java中拆分带有delimeters'(''{''}')''的字符串

时间:2017-07-15 02:47:35

标签: java regex split delimiter

String str = "one(two)three{four}"
String[] arr  = str.split("(\\()(\\{)(\\))(\\}))";

输出应该是:

arr = {"one","two","three","four"};

3 个答案:

答案 0 :(得分:2)

正则表达式不会编译。

 ( \( )                        # (1)
 ( \{ )                        # (2)
 ( \) )                        # (3)
 ( \} )                        # (4)
 =    )  <-- Unbalanced  ')'

您可能意味着要分开[(){}]+

答案 1 :(得分:-1)

你应该逃避反斜杠添加或:

String str = "one(two)three{four}";    
String[] arr = str.split("\\(|\\)|\\{|\\}");

或者您可以使用方括号列表:

String str = "one(two)three{four}";    
String[] arr = str.split("[(){}]");

两个选项都可以使用

答案 2 :(得分:-1)

如果您只想在上面的字符串中捕获文本部分,可以使用以下正则表达式;

(\w+)

链接到测试here