a(b(1)c(12)d(123)e)f
以"(" 或 ")"分割
分成a,b(1)c(12)d(123)e,f
不要把"(数字)"分割了
请问怎么写
谢谢

解决方案 »

  1.   

    如果是这样的话,先找出分隔的规律。根据楼主的要求,使用“(”或“)”将字符串拆分。
    从拆分的限定条件可以看出,拆分的括号得满足下面的条件:1,“(”开括号后不允许出现数字;
    2,“)”闭括号前不允许出现数字;
    3,其他情形时的括号全部作为分隔符进行拆分。这样就可以得出表达式了:\((?!\d)       表示“(”后面不允许出现数字
    (?<!\d)\)     表示“)”前面不允许出现数字这两个条件满足一个就进行拆分。写成 Java 代码如下:public class Test {    public static void main(String[] args) {
            String str = "a(b(1)c(12)d(123)e)f";
            String regex = "\\((?!\\d)|(?<!\\d)\\)";        String[] strs = str.split(regex);        for(int i = 0; i < strs.length; i++) {
                System.out.println(strs[i]);
            }
        }
    }但愿我已经说明白了 :)
      

  2.   

    我贴一段自己看着都晕的代码<script>
    var str = "a(b(1)c(12)d(123)e)f";
    alert(str.replace(/\(([^\d])/g,",$1").replace(/([^\d])\)/g,"$1,"));
    </script>
      

  3.   

    意思明白了,不过\((?!\d)      表示“(”后面不允许出现数字 
    (? <!\d)\)    表示“)”前面不允许出现数字 看起来不大明白。