您的位置:首页 > 其它

正则表达式Pattern和Matcher

2016-10-25 22:35 176 查看
1、把相应正则表达式编译到模式中(即创建一个模式对象Pattern)

2、利用此模式matcher方法创建一个匹配器Matcher

3、利用Matcher相关方式对特定字符串与该模式下进行匹配

例:

public static void matcherTest(){

String s="zhangchenghui";
String reg="zhang";

Pattern p=Pattern.compile(reg);

Matcher m=p.matcher(s);

m.replaceAll("haha");
}

输出“hahachenghui”
上面例子与下面字符串方法具有相同效果
public static void stringTest(){

String s="zhangchenghui";
String reg="zhang";

s=s.replaceAll(reg, "haha");
System.out.println(s);
}
输出“hahachenghui”
其实字符串相关方法底层也是调用了Pattern和Matcher。

再来看看:

public static void patternSplit(){

Pattern p =Pattern.compile(",");

String[] s=p.split("zhang,cheng,hui");
for(String name:s)
System.out.println(name);
}
输出结果:
zhang
cheng
hui


public static void matchesTest(){
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
System.out.println(b);
}
输出结果:
true

<span style="white-space:pre">	</span>/*
* 网页爬虫:
* Pattern Matcher方法
*/
public static void getMails() throws IOException{

File file=new File("mail.txt");
BufferedReader bufferedReader=
new BufferedReader(new FileReader(file));

String line=null;
String mailreg="\\w+@\\w+(\\.\\w+)+";

Pattern p=Pattern.compile(mailreg);

while((line=bufferedReader.readLine())!=null){

Matcher m=p.matcher(line);
while(m.find())
System.out.println(m.group());
}

bufferedReader.close();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  正则表达式