String cont = "如果您向专家提问,专家8613738161515在登录CSDN网站后将第一时间内得到通知,并且为您提供答案,如果需要向指定的专家提问,您需要至13638161717少100分可用分 ";在cont中包含了手机号码,我想取出其中的手机号码,想得到 13738161515,13638161717这两个号码。当然CONT中也可能没有手机号码,那么就不用取,也可能有一个,那么就取一个,有多个就逗号隔开。 这该怎么做啊,怎么去匹配号码呢,不晓得怎么去找,请教各位前辈急啊

解决方案 »

  1.   

    我如果输入了11111111111这样也算是手机号码吗,如果这样就按照数字>=11位截取用正则表达式
    比如 ([0-9]{11}\\d*)
    参看到下java正则表达式的用法
      

  2.   

    String cont = "如果您向专家提问,专家8613738161515在登录CSDN网站后将第一时间内得到通知,并且为您提供答案,如果需要向指定的专家提问,您需要至13638161717少100分可用分 "; 
     Pattern pattern = Pattern.compile("[0-9]{11,}");
     Matcher m = pattern.matcher(cont);
     while(m.find()){ 
     String key=m.group(); 
     System.out.println(key); 
     }
      

  3.   

    1楼的是测试11位数字的,不能算是手机号码吧!
    (^[1][3|5][0-9]{9}$)|(^0[1][3-5][0-9]{9}$)
    这里也只考虑了一部门,新的网段没有考虑进去,特别是电信最近出的CDMA网段!LZ可以依样画葫芦!
    以上这个是javascript里的正则,需要做一点点的更改就能用了!
      

  4.   

    String cont = "如果您向专家提问,专家8613738161515在登录CSDN网站后将第一时间内得到通知,并且为您提供答案,如果需要向指定的专家提问,您需要至13638161717少100分可用分 ";
    Pattern p = Pattern.compile("((135|136|137)|86(135|136|137))[0-9]{8}");
    Matcher m = p.matcher(cont);
    while(m.find()){
        System.out.println(m.group());
    }
      

  5.   

    public class MobileMatcher{
    public static void main(String args[]){
    Pattern p = Pattern.compile("(1[3][0-9]|159)[0-9]{8}");
    String s = "想得到 13738161515,13638161717这两个号码";
    Matcher m = p.matcher(s);
    while(m.find()){
    System.out.println(m.group());
    }
    }
    }
      

  6.   


    public class MobileMatcher{
    public static void main(String args[]){
    Pattern p = Pattern.compile("(1[3][0-9]|159)[0-9]{8}");
    String s = "想得到 13738161515,13638161717这两个号码";
    Matcher m = p.matcher(s);
    while(m.find()){
    System.out.println(m.group());
    }
    }
    }
      

  7.   

    public class MobileMatcher{
    public static void main(String args[]){
    Pattern p = Pattern.compile("(1[3][0-9]|159)[0-9]{8}");
    String s = "想得到 13738161515,13638161717这两个号码";
    Matcher m = p.matcher(s);
    while(m.find()){
    System.out.println(m.group());
    }
    }
    }
      

  8.   


    import java.util.regex.Pattern;
    import java.util.regex.Matcher;
    public class tse { public static void main(String[] args) {

    String cont = "如果您向专家提问,专家8613738161515在登录CSDN网站后将第一时间内得到通知,并且为您提供答案,如果需要向指定的专家提问,您需要至13638161717少100分可用分 ";
    Pattern pattern = Pattern.compile("[1][0-9]{10}");
    Matcher m = pattern.matcher(cont);
    while(m.find()){
    String key=m.group();
    System.out.println(key);
    }
    }
    }
    这里是找处1开始的连续11位的数字。。
    以上代码的运行结果是:
    13738161515
    13638161717
      

  9.   

    Pattern  和  matcher  怎么 用 啊 如果你们 给我 解答  是不 是我也得在这个栏目下才能看到 啊