【问题标题】:how to split a string with delimeters '(' '{' '} ')'' in java如何在java中使用分隔符'(''{''}')''分割字符串
【发布时间】:2017-07-15 02:47:34
【问题描述】:
String str = "one(two)three{four}"
String[] arr  = str.split("(\\()(\\{)(\\))(\\}))";

输出应该是这样的:

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

【问题讨论】:

    标签: java regex split delimiter


    【解决方案1】:

    正则表达式无法编译。

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

    你可能是想在[(){}]+上分手

    【讨论】:

      【解决方案2】:

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

      (\w+)
      

      测试链接here

      【讨论】:

      • 这不是拆分的工作方式 - 您需要使用正则表达式进行拆分 - 这只会给您 (,),{,} 结果
      【解决方案3】:

      您应该转义反斜杠添加或:

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

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

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

      两个选项都可以

      【讨论】:

      • 它只是看起来像这样,因为代码格式不正确 - 反斜杠已经被 OP 转义了。
      • @ErwinBolwidt 这不仅是代码格式 - 它也是 or 操作数缺失 - 由答案更新
      猜你喜欢
      • 2011-09-12
      • 1970-01-01
      • 2013-05-03
      • 1970-01-01
      • 2013-08-16
      • 2021-06-12
      • 2021-09-25
      相关资源
      最近更新 更多