Pattern类最大的用处是获取字符串中的手机号码
首先先看看API中是如何描述的:
我们可以看到,典型的调用顺序,上图的ab就是正则表达式,“aaaaab"就是字符串,意思就是根据正则0或多个a,一个b去匹配字符串"aaaaab”,能匹配上就返回true,不能匹配就返回false;但这个调用顺序相当于 “aaaaab”.matches("ab");而我们想要获取手机号,需要对其做出一点改变。
String s="我的手机号17745904630,曾经用过15647895606";
Pattern p = Pattern.compile("1\\d{10}");
Matcher m = p.matcher(s);
boolean b1=m.find();
String s1=m.group();
System.out.println(s1);
例如上面,首先有一个字符串,我们写出一个手机号的正则(“1\d{10}”,之后让字符串s去匹配正则,也就是第三行,匹配上之后再调用Matcher类的find()方法用来找到字符串位置,也就是第四行,之后再调用Matcher类的group()方法来获取手机号,也就是第五行,最后输出手机号。
但是,这个方法只能获取一个手机号,获取不到之后的手机号,我们再做一点改变,
String s="我的手机号17745904630,曾经用过15647895606";
Pattern p = Pattern.compile("1\\d{10}");
Matcher m = p.matcher(s);
while(m.find())
System.out.println(m.group());
我们写一个while循环,当找到手机号位置时,就获取,这也就能获取所有的手机号了。