正则表达式条件分组

maxinliangGenius 2012-08-27 07:05:15
我这儿有一个字符串: aaa,BBB=[a,b],CCC=[c,d] 我想用String.split(",")进行分组这个字符串,但是中括号里面的,号不需要做为分隔符,我想要的结果如下:
aaa
BBB=[a,b]
CCC=[c,d]
那位大哥给写个正则表达式,小弟这儿先谢谢了!
...全文
174 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
scbb 2012-08-28
  • 打赏
  • 举报
回复
能用的话结贴吧。 谢谢。 :)
scbb 2012-08-28
  • 打赏
  • 举报
回复
String regex = "(?!\\[[^,]+),(?![^,]+])";

String str = "aaa,BBB=[中文#,$#@],CCC=[c,d]";
String tokens[] = str.split(regex);
for (String c : tokens) {
System.out.println(c);
}
maxinliangGenius 2012-08-28
  • 打赏
  • 举报
回复
朋友,你这个我测试过了,没有问题,不过【】号里面有中文就不行了。
maxinliangGenius 2012-08-28
  • 打赏
  • 举报
回复
朋友,非常感谢!
scbb 2012-08-27
  • 打赏
  • 举报
回复

public static void main(String[] args) {
String regex = "(?!\\[\\w+),(?!\\w+])";


String str = "aaa,BBB=[a,b],CCC=[c,d]";
String tokens[] = str.split(regex);
for (String c : tokens) {
System.out.println(c);
}
System.out.println("--------------------------");
str = "aaa,BBB=[a,b],CCC=[c,d";
tokens = str.split(regex);
for (String c : tokens) {
System.out.println(c);
}
}


我改了下好像更好了。 :)
楼主看下下。
scbb 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
"aaa,BBB=[a,b],CCC=[c,d]".split(",(?!\\w+])");
[/Quote]

厉害。 不过。
这个好像只是用右边没有]的,来split。

String str = "aaa,BBB=[a,b],CCC=[c,d";
这个的情况,最后c d之间的,就没有使的CCC=[c 和d分开。

请问要精确匹配只有[]外面的,才split呢?
龙四 2012-08-27
  • 打赏
  • 举报
回复
"aaa,BBB=[a,b],CCC=[c,d]".split(",(?!\\w+])");
scbb 2012-08-27
  • 打赏
  • 举报
回复
mark 下有空看下。

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧