下载此文档

正则表达式.doc


文档分类:IT计算机 | 页数:约19页 举报非法文档有奖
1/19
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/19 下载此文档
文档列表 文档介绍
正则表达式--Tag:正则表达式                                        正则表达式作为本章的结尾,我们来看一看正则表达式(regularexpression)。,但是对sed和awk这样的Unix的标准实用工具,以及Python,Perl之类的语言来讲,它早就已经成为其不可或缺的组成部分了(有人甚至认为,它还是Perl能大获成功的最主要的原因)。单从技术角度来讲,正则表达式只是一种处理字符串的工具(过去Java这个任务是交由String,StringBuffer以及StringTokenizer处理的),但是它常常和I/O一起使用,所以放到这里来讲也不算太离题吧。[66]正则表达式是一种功能强大但又非常灵活的文本处理工具。它能让你用编程的方式来描述复杂的文本模式,然后在字符串里把它找出来。一旦你找到了这种模式,你就能随心所欲地处理这些文本了。虽然初看起来正则表达式的语法有点让人望而生畏,但它提供了一种精练的动态语言,使我们能用一种通用的方式来解决各种字符串的问题,包括匹配,选择,编辑以及校验。创建正则表达式你可以从比较简单的东西入手学****正则表达式。要想全面地掌握怎样构建正则表达式,。字符B字符B\xhh16进制值0xhh所表示的字符\uhhhh16进制值0xhhhh所表示的Unicode字符\tTab\n换行符\r回车符\f换页符\eEscape正则表达式的强大体现在它能定义字符集(characterclass)。下面是一些最常见的字符集及其定义的方式,此外还有一些预定义的字符集:[abc]表示字符a,b,c中的任意一个(与a|b|c相同)[^abc]除a,b,c之外的任意一个字符(否定)[a-zA-Z]从a到z或A到Z当中的任意一个字符(范围)[abc[hij]]a,b,c,h,i,j中的任意一个字符(与a|b|c|h|i|j相同)(并集)[a-z&&[hij]]h,i,j中的一个(交集)\s空格字符(空格键,tab,换行,换页,回车)\S非空格字符([^\s])\d一个数字,也就是[0-9]\D一个非数字的字符,也就是[^0-9]\w一个单词字符(wordcharacter),即[a-zA-Z_0-9]\W一个非单词的字符,[^\w]如果你用过其它语言的正则表达式,那么你一眼就能看出反斜杠的与众不同。在其它语言里,"\\"的意思是"我只是要在正则表达式里插入一个反斜杠。没什么特别的意思。"但是在Java里,"\\"的意思是"我要插入一个正则表达式的反斜杠,所以跟在它后面的那个字符的意思就变了。"举例来说,如果你想表示一个或更多的"单词字符",那么这个正则表达式就应该是"\\w+"。如果你要插入一个反斜杠,那就得用"\\\\"。不过像换行,跳格之类的还是只用一根反斜杠:"\n\t"。这里只给你讲一个例子;,这样就能很容易地找到各种正则表达式的模式了。逻辑运算符XYX后面跟着YX|YX或Y(X)一个"要匹配的组(capturinggroup)".以后可以用\i来表示第i个被匹配的组。边界匹配符^一行的开始$一行的结尾\b一个单词的边界\B一个非单词的边界\G前一个匹配的结束举一个具体一些的例子。下面这些正则表达式都是合法的,而且都能匹配"Rudolph":Rudolph[rR]udolph[rR][aeiou][a-z]ol.*R.*数量表示符"数量表示符(quantifier)"的作用是定义模式应该匹配多少个字符。Greedy(贪婪的):除非另有表示,否则数量表示符都是greedy的。Greedy的表达式会一直匹配下去,直到匹配不下去为止。(如果你发现表达式匹配的结果与预期的不符),很有可能是因为,你以为表达式会只匹配前面几个字符,而实际上它是greedy的,因此会一直匹配下去。Reluctant(勉强的):用问号表示,它会匹配最少的字符。也称为lazy,minimalmatching,non-greedy,或ungreedy。Possessive(占有的):目前只有Java支持(其它语言都不支持)。它更加先进,所以你可能还不太会用。用正则表达式匹配字符串的时候会产生很多中间状态,(一般的匹配引擎会保存这种中间状态,)这样匹配失败的时候就能原路返回了。占有型的表达式不保存这种中间状态,因此也就不会回头重来了。它能防止正则表达式的失控,同时也能提高运行的效率。GreedyReluctantPossessive匹配X?X??X?+匹配一个或零个XX*X*?X*+匹配零或多个XX+X+?X

正则表达式 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数19
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wo1230
  • 文件大小119 KB
  • 时间2019-05-30