正则表达式的基本用法:
1:判断是否匹配
2:按照给定的正则表达式搜索匹配的内容(网络蜘蛛)
/*
* 正则表达式的基本用法
* 利用String类中的str.matches(reg)来验证字符串是否匹配给定的正则表达式。
*/
@Test
public void test1(){
String str="010-12345678";
String reg="0\\d{2}-\\d{7,8}";
boolean boo=str.matches(reg);
System.out.println(boo);
}
/*
* 正则表达式的高级用法:搜索指定内容(网络蜘蛛)
* 利用java.util.regex中的Pattren类和Matcher类
* 可以把Pattren类看成工具,Matcher类看成匹配结果
* 功能:可以判断是否匹配,搜索指定正则表达式匹配的内容
*/
@Test
public void test2_1(){
String str="010-12345678012-3431354873012-12345678";
//获得工具
Pattern p=Pattern.compile("0\\d{2}-\\d{7,8}");
//获得匹配结果
Matcher m=p.matcher(str);
/*
* m.matchers()方法功能:
* 使用整个完整的字符串 与 正则表达式 匹配,,类似String中的matchers()方法
* 判断整个字符串是否符合reg
*/
boolean boo1=m.matches(); //false
System.out.println("boo1:"+boo1);
/*
* m.find()方法功能:
* 判断字符串中是否含有符合正则表达式的子串
*
* 如果该方法的前一次调用了成功了,并且从那时开始的匹配器没有被重置,
* 则从上一次匹配没有成功的第一个字符开始
*
* find(0)指定游标从0开始查找
* find()指定游标从当前位置开始查找
*/
boolean boo2=m.find(0); //true
// boolean boo2=m.find(); //true
System.out.println("boo2:"+boo2);
/*
* m.group()功能:
* 输出匹配的字符串
*/
String s=m.group(0);
System.out.println(s);
}
@Test
public void test2_2(){
String str="010-12345678045-434577873078-3574534357";
Pattern p=Pattern.compile("0\\d{2}-\\d{7,8}");
Matcher m=p.matcher(str);
while(m.find()){
System.out.println(m.group());
}
}