正则表达式基础及Java正则表达式应用

正则表达式基础及Java正则表达式应用

ID:42671572

大小:1.28 MB

页数:16页

时间:2019-09-19

正则表达式基础及Java正则表达式应用_第1页
正则表达式基础及Java正则表达式应用_第2页
正则表达式基础及Java正则表达式应用_第3页
正则表达式基础及Java正则表达式应用_第4页
正则表达式基础及Java正则表达式应用_第5页
资源描述:

《正则表达式基础及Java正则表达式应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、正则表达式基础及Java正则表达式应用陈敏刚2016.7.15【引言】由于研究需要对日志信息、视频信息作大数据的分析,特整理以下正则表达式的各种用法,比如如何提取Apache日志信息中的IP地址和访问时间,如何设计简单的网络爬虫程序等,主要通过Java语言描述,其它语言如Python思路也基本相通。1.正则表达式基本概念正则表达式,也叫RegularExpressions,它实际上是用来搜索、匹配字符串的模式,是一种强大而灵活的文本处理工具。在Java中要使用正则表达式,则需要importjava.util.rege

2、x,一般与JavaI/O联合使用正则表达式一般要表达三个要素。(1)要匹配的字符,如[0-9];(2)字符的数量或者有几个这样的字符,如{2,4},即2-4个字符,需要用大括号括起来。(3)字符的位置在哪儿?如b表示字符的边界,border。要熟悉以上正则表达式的基本元素,可以对应于正则表达式的要素,分为字符类、数量类和位置类。(1).代表1个字符的通配符比如,t.n可匹配“tan,ten,ton,tpn”等(2)[]代表字符集,只有方括号里指定的字符才能参与匹配,方括号内只能匹配单个字符,但可用连字符-来表示范围

3、,如[0-9]表示0-9中的一个数字;比如,t[aeiou]n,可匹配“tan,ten,ton”,但不匹配tpn、toon等。[^]表示排斥性字符集。比如,[^x][a-z]+,可匹配除x开头的所有单词。(3)()用来分组,在()内可以使用“

4、”操作表示“或”,方括号[]不能用“

5、”比如,t(a

6、e

7、i

8、o

9、u

10、oo)可匹配“tan,ten,ton”,还可匹配toon。(4)^表示起始位置、b表示单词边界(a)^的基本用法ü第一个例子的匹配是成功的,这是因为模式占据了整个输入的字符串。ü第二个例子失败了,是由于输入

11、的字符串在开始部分包含了额外的空格。ü第三个例子指定的表达式是不限的空格,后跟着在行尾的dog。ü第四个例子,需要dog放在行首,后面跟的是不限数量的单词字符。(b)对于检查一个单词开始和结束的边界模式(用于长字符串里子字符串),这时可以在两边使用b,例如bdogb。(c)对于匹配非单词边界的表达式,可以使用B来代替:(d)对于需要匹配仅出现在前一个匹配的结尾,可以使用G:星号*表示0个或多个加号+表示1或多个问号?表示0个或1个n就是写个数字表示重复多少次[0-9]+来查找年份,字符为数字,数字出现1个或

12、多个。由于正则表达式比较难用,所以引入一些简写方式,比如d表示数字(digit)[0-9],s表示空白符(space)、w表示单词字符(word)[a-zA-Z_0-9]。正则表达式写起来还是比较麻烦,因此经常需要利用工具,比如QRe,b(href)=(‘[^’]+’)上面正则表达式的解释:(1)两个圆括号()代表两个group(2)b表示单词边界,(href)表示group1(3)(‘[^’]+’)表示group2,字符是‘开始,’结束,中间1个或多个非’字符,整个匹配字符串的称为group01.正则表达

13、式的基本应用Java中正则表达式,需要用到java.util.regex包,这个包主要有两个类,分别是Pattern类(模式类)和Matcher类(匹配类)。nPattern对象表示一个已编译的正则表达式。Pattern类没有提供公共的构造方法。要构建一个模式,首先必须调用公共的静态compile方法,它将返回一个Pattern对象,这个方法接受正则表达式作为第一个参数,把正则表达式字符串编译到一个用于处理匹配的模式对象中。nMatcher是在输入的字符串中定位模式的匹配的对象与Pattern相似,Matcher也没

14、有定义公共的构造方法,需要通过调用Pattern对象的matcher方法来获得一个Matcher对象。2.1字符串的分割//将正则表达式”[,\s]+”编译成模式类对象p,\s表示空格,并用了表示转义符Patternp=Pattern.compile(“[,\s]+”);//调用p的split方法分割字符串String[]result=p.split("one,two,threefour,five");2.2字符串的匹配验证//开始的^表示字符串开始,结尾的$表示字符串结尾//@前表示1到多个非@字符//@后

15、“[\w]+”表示1到多个word,\w表示w的转义//“(\.[\w]+)*”表示多个”.word”的模式Stringpattern="^[^@]+@[\w]+(\.[\w]+)*$";Stringemail="dstang2000@263.net";booleanok=Pattern.matches(pattern,emai

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。