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太麻烦,不够简练
求帮助........

解决方案 »

  1.   


    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]);
            }
        }
      

  2.   

    揭贴好快啊楼主.*这种在character classes中失去特殊含义了,所以被无视了
    @在其中不需要转义
    还有你无非是需要以[@或@]分隔,也可以(\\[@|@\\]),1楼也是这样,只是用的量词?实现