我想取得“:“左右两边的数字,请问高手通过正则表达式或其他方法如何实现?如下记三种:"   1    22:00    2 "
"22:00     "
"   1    rr22:00tt    2 "
结果是:
22 和  00

解决方案 »

  1.   

    var str = '1 22:00 2';
    alert(str.replace(/.*?(\S*):(\S*).*/g,"$1,$2"));
      

  2.   


    public class Base { public static void main(String[] args) { String string = " 1 22:00 2";
    String str [] = string.split(":");
    System.out.println(str[0]);
    System.out.println(str[1]);
    }
    }/* 结果:
     1 22
    00 2
    */
      

  3.   


    //或者:
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Base { public static void main(String[] args) { String string = "1 rr22:00tt 2";
    Pattern pattern = Pattern.compile("(.+):(.+)"); 
    Matcher matcher = pattern.matcher(string);
    while (matcher.find()) {
    String get1 = matcher.group(1);
    System.out.println(get1);
    System.out.println("----------------");
    String geta = matcher.group(2);
    System.out.println(geta);
    }
    }
    }
    /*结果:
    1 rr22
    ----------------
    00tt 2
    */
      

  4.   

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class testExpr {
    public static void main(String[] args) {
    // TODO Auto-generated method stub

    String expr = "([0-9]+):([0-9]+)";
    String s = "1 rr22:33:dd 3";
    Pattern p; Matcher m;
    p = Pattern.compile(expr);
    m = p.matcher(s);
    if (m.find()) {
    System.out.println(m.group(1));
    System.out.println(m.group(2));
    }
    }
    }
      

  5.   

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Test {
        public static void main(String[] args) {
            Pattern pattern = Pattern.compile("(\\d+):(\\d+)");
            Matcher matcher = pattern.matcher("1 rr22:00tt 2 ");
            
            while (matcher.find()) {
                System.out.println(matcher.group(1) + ", " + matcher.group(2));
            }
        }
    }
      

  6.   

    直接split不就行了,干嘛那么麻烦用正则,还是说你要得到数字,不是全部的字符串
      

  7.   

    String s = "1 rr22:00tt 2";
    System.out.println(s.replaceAll(".*?(\\d*):(\\d*).*", "$1 和 $2"));