第一篇:记录研究生的学习
不管是逼迫自己学习,还是让为了以后能找份像样点的工作,自己慢慢觉得得写一些什么,慢慢记录自己研究生的学习过程吧。
自己知道在整个CS人生中,现在还属于毛皮都没摸到的阶段,所以正因为如此才需要点点滴滴记录自己的学习过程,只是为了
给自己看,让自己在学习的过程中能够回过头思考。话不多说:
第一篇讲的是JAVA中正则表达式的匹配,这在网络爬虫会运用很多,因为页面都是DOM对象格式,想获取哪一个单元里面的
内容就可以用正则表达式去取,关于正则的原理,我这里不想多说,可以参考30分钟正则表达式快速入门,以后会有机会去讲
正则表达式的使用技巧。参考链接是:http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html
在java中,传参会有匹配规则和待匹配内容,匹配结果也会有个字符串或者一个字符串列表,下面写的是两种正则表达的匹配
函数:
1.返回字符串
public static String RegexOutStringOp(String regexstr,String content){
final String patternString=regexstr;
Pattern pattern=Pattern.compile(patternString);
Matcher matcher=pattern.matcher(content);
if(matcher.find()){
String resultstr=matcher.group(1);
return resultstr;
}
return null;
}
其中,regexstr是匹配规则,content是待匹配内容,这里要注意的是由于返回的是group(1)的内容,所以匹配规则里面需要加
相应的括号(原理参照正则表达式学习中分组匹配这一节),下面是运行结果:
public static void main(String[] args){
System.out.println(RegexOutStringOp("(20[0-9]{2}[-,年][0-9]{1,2}[-,月][0-9]{1,2}[日*])","当天的时间是2013年05月25日"));
}
控制台结果:
2013年05月25日
我们可以看到匹配规则中全部最外有一个括号,就是获取括号里面的内容。
2.返回匹配列表:
public static ArrayList<String> RegexOutListOp(String regexstr,String content){
ArrayList<String> resultList = new ArrayList<String>();
Pattern p = Pattern.compile(regexstr,Pattern.CASE_INSENSITIVE);//匹配
Matcher m = p.matcher(content);
while (m.find()) {
resultList.add(m.group(1));//获取被匹配的部分
}
if(!resultList.isEmpty()){
return resultList;
}
else{
String tmpstr = new String("该list为空");
resultList.add(tmpstr);
return resultList;
}
}
原理相同,不在赘述。
下面是运行结果。
public static void main(String[] args){
//System.out.println(RegexOutStringOp("(20[0-9]{2}[-,年][0-9]{1,2}[-,月][0-9]{1,2}[日*])","当天的时间是2013年05月25日"));
System.out.println(RegexOutListOp("<p>(.*?)</p>","<p>这是第一组</p><p>这是第二组</p><p>这是第三组</p>"));
}
控制台结果:
[这是第一组, 这是第二组, 这是第三组]
最后在一些常用正则表达式规则吧:
<a[^<>]*?href="([^<>]*?)"[^<>]*? 网页链接
<title>([[^</title>]|[a-z]|[A-Z]]*) 网页标题
(20[0-9]{2}[-,年][0-9]{1,2}[-,月][0-9]{1,2}[日*]) 日期
\(?0\d{2}[) -]?\d{8} 电话
这几个是我自己的常用的,更多常用的可以参考:http://www.williamlong.info/archives/433.html
今天就到这里。。。。。
posted on 2013-05-25 13:29 Monster_Ch 阅读(129) 评论(0) 收藏 举报
浙公网安备 33010602011771号