黑马程序员技术交流社区

标题: 一道正则表达式的问题,希望高手解答,当然也希望得技术分,谢谢 [打印本页]

作者: pzfpang449    时间: 2013-2-7 10:15
标题: 一道正则表达式的问题,希望高手解答,当然也希望得技术分,谢谢
//替换匹配,匹配所有连在一起的数字(超过或等于2位的),用_替换
    public static String replace2(){
        String str="f12flskfls;ls32kj5555jls313fk";
        String s=str.replaceAll("[0-9]{2,}", "_");   
        return s;   
    }

结果f_flskfls;ls_kj_jls_fk,正常
那么如果我相匹配
//替换匹配,匹配所有连在一起的数字(只匹配2到3位的),用_替换
该怎么写呢?

String s=str.replaceAll("[0-9]{2,3}", "_");
这样肯定是不行的,
这样的结果是:
f_flskfls;ls_kj_5jls_fk
而我想要的结果是
f_flskfls;ls_kj5555jls_fk

非常感激大家能在百忙之中翻阅我的提问。祝你们工作顺利,学业、事业蒸蒸日上
作者: 李东城    时间: 2013-2-7 12:54
用环视
左边不是数字
右边不是数字
中间是2-无穷大的数字就行了
具体代码还需要我写吗?
作者: 朱玉玺    时间: 2013-2-7 22:16
本帖最后由 朱玉玺 于 2013-2-7 22:27 编辑

replaceAll("(\\D)[0-9]{2,3}(\\D)", "$1_$2"); 试试




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2