java正则表达式的总结

java正则表达式的总结

ID:14380672

大小:56.00 KB

页数:20页

时间:2018-07-28

java正则表达式的总结_第1页
java正则表达式的总结_第2页
java正则表达式的总结_第3页
java正则表达式的总结_第4页
java正则表达式的总结_第5页
资源描述:

《java正则表达式的总结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Java正则表达式的总结Java正则表达式的总结关键词:Java正则表达式正则表达式用来指定字符串模式。当你需要定位匹配某种模式的字符串时就可以使用正则表达式。例如,我们下面有一个例程就是在一个HTML文件中通过查找字符串模式来定位所有的超链接的。当然,为了指定一种模式,使用...这种记号是不够精确的。你需要精确地指定什么样的字符排列是一个合法的匹配。当描述某种模式时,你需要使用一种特殊的语法。这里有一个简单例子。正则表达式[Jj]ava.+匹配具有下列形式的任何字符串:首字母是J或

2、j后续的三个字母是ava字符串的剩余部分由一个或多个任意字符组成例如,字符串“javaness”匹配这个特殊的正则表达式,但是字符串“CoreJava”却不匹配。如你所见,你需要了解一点语法来理解正则表达式的含意。幸运的是对于大多数的用途,使用少量的简单构造(straightforwardconstructs)就已足够。字符类是可选自符的集合,用‘[’封装,比如[Jj],[0-9],[A-Za-z]或[^0-9]。这里的-表示范围(Unicode落在两个边界之间的所有字符),^表示求补(指定字符外的所有字符)

3、。有许多预定义的字符类,像d(数字)或p{Sc}(Unicode货币符号),见表12-8和12-9。大多数字符与它们自身匹配,比如上例中的ava字符。符号.匹配任何字符(可能行终止符(lineterminators)除外,这由标志设置(flagsettings)决定)用作转义符,比如.匹配一个句点,\匹配一个反斜杠。^和$分别匹配行头和行尾如果X和Y都是正则表达式,则XY表示“X的匹配后面跟着Y的匹配”。X

4、Y表示“任何X或Y的匹配”可以将量词(quantifier)用到表达式中,X+表示X重复1次

5、或多次,X*表示X重复0次或多次,X?表示X重复0次或1次默认地,一个量词总是与使总体成功匹配的最长的可能重复相匹配。可以加上后缀?(称为reluctant或stingy匹配,用以匹配最小的重复数),和+(称为possessive或贪婪匹配(疑问:默认是贪婪匹配,这里为何还叫greedy匹配?),用以即使在总体匹配失败的情况下也匹配最大的重复数)来更改这种属性。例如,字符串cab匹配[a-z]*ab,但不匹配[a-z]*+ab。第一种情况下,[a-z]*只匹配字符c,因此字符ab正好与模式的剩余部分匹配。但是

6、贪婪版本[a-z]*+就已经与字符cab匹配,模式的剩余部分ab也就匹配失败(,这样总体也就匹配失败)。可以使用分组(groups)来定义子表达式。将分组封装在()中,如([+-]?)([0-9]+)。然后你可以让模式匹配符(thepatternmatcher)返回每个分组的匹配,或者使用来回引分组(referbacktoagroupwith),其中n是组号(以1起始,即第一个分组编号1)这里有一个稍微有点复杂却又很有用的正则表达式--它用来描述十进制或十六进制的整数。[+-]?[0-9]+

7、0[

8、Xx][0-9A-Fa-f]+不幸的是,在使用正则表达式的各种程序和库之间,它的语法还没有完全标准化。对基本的构造已有了共识,但在细节方面有许多令人“抓狂”的区别(manymaddeningdifferences)。Java的正则表达式类使用了与Perl语言类似的语法,但也不尽相同。表12-8显示了Java语法的所有正则表达式构造。要了解更多关于正则表达式的信息,请参考Pattern类的API文档,或者JeffreyE.F.Friedl的著作《MasteringRegularExpressions》(O'Re

9、illyandAssociates,1997)(刚去第二书店查了一下,东南大学出版社已经引入了其第二版,影印)表12-8正则表达式语法--------------------------------------------------------------------------------语法解释--------------------------------------------------------------------------------字符c字符cunnnn,xnn,n,nn

10、,nnn带有十六或八进制值的代码单元n八进制0n代表的字符(0<=n<=7)nn八进制0nn代表的字符(0<=n<=7)mnn八进制0mnn代表的字符(0<=m<=3,0<=n<=7)xnn十六进制0xnn所代表的字符uhhhh十六进制0xhhhh所代表的字符t,,r,f,a,e控制字符t制表符(x09)换行符(x0a)r回车符(x0d)f换页符(

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

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

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