求一个正规表达式,删除字符串中的数字和符号,用空隔代替,但是如果是汉字的电码\0000-\9999不能删除。例如:"abc11,cd123 \\0123" 删除后 应该是打印出来应该是 "abc cd \0123"

解决方案 »

  1.   

    难点不在删除字符  在过滤电码数字 另外像大家推荐个JAVA技术交流群8319449
      

  2.   

    for example
    String s = "abc11,cd123 \\0123";
    Pattern p = Pattern.compile(".*?\\d+");
    Matcher m = p.matcher(s);
    StringBuffer sb = new StringBuffer();
    while (m.find()) {
        if (!m.group().matches("\\W*\\\\\\d+")) {
            m.appendReplacement(sb, m.group().replaceAll("\\d+", ""));
        }
    }
    m.appendTail(sb);
    System.out.println(sb);
      

  3.   

    好像这样简单一点,不知道是否考虑全面
    String s = "abc11,cd123 \\0123";
    s = s.replaceAll("([^\\\\\\d]+)\\d+", "$1");
    System.out.println(s);
      

  4.   

    不全面,\\后面是四位数字,才表达是电码,如果\\aaaaa 就要删除'\\'(删除所有符号) 或\\23(后面不是四位数)就要全部删掉