String cont = "如果您向专家提问,专家8613738161515在登录CSDN网站后将第一时间内得到通知,并且为您提供答案,如果需要向指定的专家提问,您需要至13638161717少100分可用分 ";在cont中包含了手机号码,我想取出其中的手机号码,想得到 13738161515,13638161717这两个号码。当然CONT中也可能没有手机号码,那么就不用取,也可能有一个,那么就取一个,有多个就逗号隔开。 这该怎么做啊,怎么去匹配号码呢,不晓得怎么去找,请教各位前辈急啊
调试欢乐多
比如 ([0-9]{11}\\d*)
参看到下java正则表达式的用法
Pattern pattern = Pattern.compile("[0-9]{11,}");
Matcher m = pattern.matcher(cont);
while(m.find()){
String key=m.group();
System.out.println(key);
}
(^[1][3|5][0-9]{9}$)|(^0[1][3-5][0-9]{9}$)
这里也只考虑了一部门,新的网段没有考虑进去,特别是电信最近出的CDMA网段!LZ可以依样画葫芦!
以上这个是javascript里的正则,需要做一点点的更改就能用了!
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());
}
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());
}
}
}
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());
}
}
}
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());
}
}
}
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