标签:
正则表达式:
正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。(百度百科)
API:http://tool.oschina.net/uploads/apidocs/jdk-zh/java/util/regex/Pattern.html
作用:用于专门操作字符串
使用:
1.用于匹配字符串;
String类的 matches(String reg)方法
2.切分字符串
String类的 split(String reg)方法
3.替换字符串
String类的 replace()和replaceAll()方法
4.获取指定规则的字符串
过程:1.封装正则表达式到Pattern,使用Pattern.compile(reg)
2.把正则对象和要操作的字符想关联,pattern.matches(str)
3.关联后,获取正则匹配引擎 通过上面的pattern.matcher(str)可以得到Matcher引擎
4.通过引擎操作,可以取出所要的字符串(引擎还有其他功能,例如前面所提及的匹配、切分、替换等)通过matcher的group方法就可以取出想要的字符串,但是group方法的使用前提是:该str必须与给reg有过匹配才能使用,所以通常的做法就是:
while(matcher.find()){
m.group();
}
这个方法常用语写爬虫,抓取自己想要的东西,例如邮箱,QQ等信息。
其他:
组:用()表示,通常是在重复引用的时候,然后组会有编号,从1开始,\1表示引用第一个()的内容,在替换过程中还可以通过$n来引用第n组的内容。
好处:对字符串的操作简单,简化一些繁琐的操作
弊端:由于正则表达式的规则表较多,特殊字符也比较多,但是涉及到的比较复杂的字符处理,书写正则表达式将会变得很麻烦,阅读性差
最简单的使用方法:
Pattern pattern = Pattern.compile("[w]{3}.[a-z\\-]{11}.[a-z]{3}"); Matcher matcher = pattern.matcher("www.alibaba-inc.com"); boolean result = matcher.matches();
匹配的话就返回true,不匹配的话就返回false==。
说白了,正则表达式就是对字符串的特殊操作,虽然书写有时候会比较麻烦,阅读性也比较差,但是用得好的话,功能很强大,死记硬背到不用,用到的时候再查,主要是使用规则要明白,看API就足够了~
标签:
原文地址:http://www.cnblogs.com/sevenlin/p/sevenlin_20150829Pattern.html