public void foo() {
String str = "出售[@泰兰德的香蕉,1111,1111,1@]800G!![@末日决战,2222,2222,2@]1W金....";
String[] strArr = str.split("[[\\[\\@].*[\\@\\]]]");
for (int i = 0; i < strArr.length; i++) {
System.out.println("第" + i + "个:" + strArr[i]);
}
}
输出结果为:
第0个:出售
第1个:
第2个:泰兰德的香蕉,1111,1111,1
第3个:
第4个:800G!!
第5个:
第6个:末日决战,2222,2222,2
第7个:
第8个:1W金
怎么会出现空字符串啊,干
我就想用这则表达式的方法
用substring太麻烦,不够简练
求帮助........
------最佳解决方案--------------------------------------------------------
public static void foo() {
String str = "出售[@泰兰德的香蕉,1111,1111,1@]800G!![@末日决战,2222,2222,2@]1W金....";
String[] strArr = str.split("\\[?@\\]?");
for (int i = 0; i < strArr.length; i++) {
System.out.println("第" + i + "个:" + strArr[i]);
}
}
------其他解决方案--------------------------------------------------------
楼主,你用这种"[[\\[\\@].*[\\@\\]]]",它的输出结果貌似是 [ or @,空串就来自这两符号中间
但.*貌似被无视了
------其他解决方案--------------------------------------------------------
2楼的结果是对的,3楼也谢谢你
就是没搞懂 怎么回事
------其他解决方案--------------------------------------------------------
揭贴好快啊楼主
.*这种在character classes中失去特殊含义了,所以被无视了
@在其中不需要转义
还有你无非是需要以[@或@]分隔,也可以(\\[@
------其他解决方案--------------------------------------------------------
@\\]),1楼也是这样,只是用的量词?实现