java - 如何使用正则表达式根据模式拆分字符串

标签 java regex

我无法根据正则表达式拆分字符串。

String str = "1=(1-2,3-4),2=2,3=3,4=4";
Pattern commaPattern = Pattern.compile("\\([0-9-]+,[0-9-]+\\)|(,)") ;
String[] arr = commaPattern.split(str);
for (String s : arr)
{
    System.out.println(s);
}

预期输出,

1=(1-2,3-4)     
2=2    
3=3    
4=4

实际输出,

1=

2=2
3=3
4=4

最佳答案

此正则表达式将根据需要拆分

,(?![^()]*\\))
  ------------
      |->split with , only if it is not within ()

关于java - 如何使用正则表达式根据模式拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15699353/

相关文章:

java - 如何修改使用 jhipster 生成的现有实体?

c# - 我如何使用 RegEx Asp.net C# 获取 BODY html 标记(来自字符串)内的所有内容#

regex - 正则表达式查找用逗号分隔的字符串,然后添加引号?

javascript - Angular 过滤器将所有下划线替换为空格

python - 在 Python 中使用正则表达式对数据进行分组

java - Kotlin 代码的 Robolectric 测试用例

java - 如何在 JNI 中将 char* 转换为 jcharArray

java - Akka是否适合瞬时网络覆盖的系统?

java - Tomcat 应用程序管理器的默认用户名密码

java - 使用正则表达式进行模式匹配