JAVA里,如何匹配一个多位数?(正则表达式)
如:string = '' int i = 12;"
请问如何使用replace All这个方法,将所有数字都加上一个标签<b></b>,如
变成string = " int i = <b>12</b>"?
又如把字符串“   33   444 5555”变成"  <b>33</b> <b>444</b> <b>5555</b>"

解决方案 »

  1.   

    你是不是说字符串的拆分split
      

  2.   

    1.正则表达式,只能完成模式匹配(定位操作),替换操作要另外想办法进行。
    2.replaceAll方法,是将匹配的字符串内容进行替换,
       但是,替换的内容是人为指定的,很难做到与匹配内容相关联。
      

  3.   

    String str = "33 44 555";
    String result = str.replaceAll("\\b\\d", "<br>");
        result = result.replaceAll("\\d\\b", "</br>");
    System.out.println(result);
    这样不行啊,每次匹配都把一个数字给替换了,
    还是split分隔开,在处理吧
      

  4.   

    String str = "33 44 555";
    String result = str.replaceAll("\\b\\d", "<br>");
        result = result.replaceAll("\\d\\b", "</br>");
    System.out.println(result);
    这样不行啊,每次匹配都把一个数字给替换了,
    还是split分隔开,在处理吧
      

  5.   

    String str = "33 44 555";
    String result = str.replaceAll("\\b\\d", "<br>");
        result = result.replaceAll("\\d\\b", "</br>");
    System.out.println(result);
    这样不行啊,每次匹配都把一个数字给替换了,
    还是split分隔开,在处理吧
      

  6.   

    我的思路是: 遍历字符串。找到第一个数字 记住索引,往后匹配,连续的数字有几个,找出最后一个的索引,将这两个索引 放到 map中或者其他容器中, 以此往后遍历。最后遍历map。将字符串根据遍历出的索引加上<br></br>.
    貌似方法有点...
    求其他方法。
      

  7.   

    public class sdfsd {
    public static void main(String[] args) {
    String a="   33   444 5555";
    String t= " int i = 12";
    System.out.println(a.replaceAll("(\\d+)", "<b>$1</b>"));
    System.out.println(t.replaceAll("(\\d+)", "<b>$1</b>"));
    }
    }