一个java正则表达式的问题,懂的请进 a(b(1)c(12)d(123)e)f以"(" 或 ")"分割分成a,b(1)c(12)d(123)e,f不要把"(数字)"分割了请问怎么写谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果是这样的话,先找出分隔的规律。根据楼主的要求,使用“(”或“)”将字符串拆分。从拆分的限定条件可以看出,拆分的括号得满足下面的条件: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]); } }}但愿我已经说明白了 :) 我贴一段自己看着都晕的代码<script>var str = "a(b(1)c(12)d(123)e)f";alert(str.replace(/\(([^\d])/g,",$1").replace(/([^\d])\)/g,"$1,"));</script> 意思明白了,不过\((?!\d) 表示“(”后面不允许出现数字 (? <!\d)\) 表示“)”前面不允许出现数字 看起来不大明白。 去除String中的空白字符,这么写为什么不对? 高分求矩阵加密算法 JAVA实现学生考试成绩分析程序(求代码) SWING做的界面白屏的问题 ClassCastException java如何读取大文件 static变量和public变量有什么区别? 字符串和ascii相互转换的两个函数? help! 谁有完整的java在linux下读excel的完整下载包URL,例子,文档,很急!!!!多少分都行 关于JAVA BEAN的一点问题 java基础教程中 堆 和 栈 自己的理解!~ (请教)
从拆分的限定条件可以看出,拆分的括号得满足下面的条件: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]);
}
}
}但愿我已经说明白了 :)
var str = "a(b(1)c(12)d(123)e)f";
alert(str.replace(/\(([^\d])/g,",$1").replace(/([^\d])\)/g,"$1,"));
</script>
(? <!\d)\) 表示“)”前面不允许出现数字 看起来不大明白。