Java正则表达式详解 IIIIII.doc
《Java正则表达式详解 IIIIII.doc》由会员分享,可在线阅读,更多相关《Java正则表达式详解 IIIIII.doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java正则表达式详解分类:J2SE2011-11-28 14:1552人阅读评论(0)收藏举报第一篇:什么是正则表达式?在学习JAVA的正则表达式之前,先介绍一下什么是正则表达式:1、正则表达式是一种强大而灵活的文本处理工具;2、在技术上,正则表达式实现了对字符串的操作,在先前,这些任务一般都指派给了JAVA中的String、StringBuffer和StringTOkenizer这些类;3、正则表达式一般和I/O联合使用;4、正则表达式可以让我们以编程方式指定那些可以再输入字符串中发现的复杂的文本模式,一旦我们发现了这些模式,那么就可以按照任何我们所希望的方式进行处理了;5、正则表达式提供
2、了一种紧凑的、动态的语言,能够以一种完全通用的方式来解决各种字符串处理(例如:匹配、选择、编辑及验证)问题;第二篇:如何创建正则表达式?好了,看到这里我想大家对正则表达式应该已经有了一定的了解了吧,下面我来介绍一下如何创建正则表达式:要学习正则表达式就必须了解正则表达式的构造集,只有了解了构造集,掌握了模式匹配的原则和方法,你才能写出适合你需要的正则表达式,打个比方,要构造一个房屋模型,就要使用这一个个的积木,让他们以适当的方式进行拼合,构造集中的匹配符号就好像是搭建房屋模型的一个个小积木,用于创建正则表达式的完全构造列表可以在javadocs的Pattern类中找到,为了方便查询,我在这里也
3、把这些构造集列了出来,以供参考(注:摘自JDK 5.0 Documentation)资料参考:正则表达式的构造摘要1)字符x 字符 x 反斜线字符0n 带有八进制值 0 的字符 n (0 = n= 7)0nn 带有八进制值 0 的字符 nn (0 = n= 7)0mnn 带有八进制值 0 的字符 mnn(0 = m = 3、0 = n = 7)xhh 带有十六进制值 0x 的字符 hhuhhhh 带有十六进制值 0x 的字符 hhhht 制表符 (u0009)n 新行(换行)符 (u000A)r 回车符 (u000D)f 换页符 (u000C)a 报警 (bell) 符 (u0007)e 转义
4、符 (u001B)cx 对应于 x 的控制符2)字符类abc a、b 或 c(简单类)abc 任何字符,除了 a、b 或 c(否定)a-zA-Z a 到 z 或 A 到 Z,两头的字母包括在内(范围)a-dm-p a 到 d 或 m 到 p:a-dm-p(并集)a-z&def d、e 或 f(交集)a-z&bc a 到 z,除了 b和 c:ad-z(减去)a-z&m-p a 到 z,而非m 到 p:a-lq-z(减去)3)预定义字符类. 任何字符(与行结束符可能匹配也可能不匹配)d 数字:0-9D 非数字: 0-9s 空白字符: tnx0BfrS 非空白字符:sw 单词字符:a-zA-Z_0-
5、9W 非单词字符:w4)POSIX 字符类(仅 US-ASCII)pLower 小写字母字符:a-zpUpper 大写字母字符:A-ZpASCII 所有 ASCII:x00-x7FpAlpha 字母字符:pLowerpUpperpDigit 十进制数字:0-9pAlnum 字母数字字符:pAlphapDigitpPunct 标点符号:!#$%&()*+,-./:;?_|pGraph 可见字符:pAlnumpPunctpPrint 可打印字符:pGraphx20pBlank 空格或制表符: tpCntrl 控制字符:x00-x1Fx7FpXDigit 十六进制数字:0-9a-fA-FpSpace
6、 空白字符: tnx0Bfr5)java.lang.Character 类(简单的java 字符类型)pjavaLowerCase 等效于 java.lang.Character.isLowerCase()pjavaUpperCase 等效于 java.lang.Character.isUpperCase()pjavaWhitespace 等效于 java.lang.Character.isWhitespace()pjavaMirrored 等效于 java.lang.Character.isMirrored()6)Unicode 块和类别的类pInGreek Greek 块(简单块)中的字符
7、pLu 大写字母(简单类别)pSc 货币符号PInGreek 所有字符,Greek 块中的除外(否定)pL&pLu 所有字母,大写字母除外(减去)7)边界匹配器 行的开头$ 行的结尾b 单词边界B 非单词边界A 输入的开头G 上一个匹配的结尾Z 输入的结尾,仅用于最后的结束符(如果有的话)z 输入的结尾8)Greedy 数量词X? X,一次或一次也没有X* X,零次或多次X+ X,一次或多次Xn X,恰好 n 次Xn, X,至少 n 次Xn,m X,至少 n 次,但是不超过 m 次9)Reluctant 数量词X? X,一次或一次也没有X*? X,零次或多次X+?X,一次或多次Xn? X,恰好
8、 n 次Xn,? X,至少 n 次Xn,m? X,至少 n 次,但是不超过 m 次10)Possessive 数量词X?+ X,一次或一次也没有X*+ X,零次或多次X+ X,一次或多次Xn+ X,恰好 n 次Xn,+ X,至少 n 次Xn,m+ X,至少 n 次,但是不超过 m 次11)Logical 运算符XY X 后跟 YX|Y X 或 Y(X) X,作为捕获组12)Back 引用n 任何匹配的 nth 捕获组13)引用 Nothing,但是引用以下字符Q Nothing,但是引用所有字符,直到 EE Nothing,但是结束从 Q 开始的引用14)特殊构造(非捕获)(?:X) X,作为
9、非捕获组(?idmsux-idmsux) Nothing,但是将匹配标志由 on 转为 off(?idmsux-idmsux:X) X,作为带有给定标志 on - off 的非捕获组(?=X) X,通过零宽度的正 lookahead(?!X) X,通过零宽度的负 lookahead(?=X) X,通过零宽度的正 lookbehind(?X) X,作为独立的非捕获组作为一个例子,下面的每一个表达式都是合法的正则表达式,并且所有表达式都会成功匹配字符序列Rudolph。第一个:Rudolph 注:就是单词本身,绝对匹配;第二个:rRudolph 注:第一个字母可以在 r 和 R 中选择一个匹配,所
10、以也能成功;第三个:rRaeioua-zol.* 注:第一个字母在 r 和 R 中匹配,第二个字母在原音字母aeiou中匹配,第三个字母在a到z的26个字母中匹配,第四个字母和第五个字母被绝对匹配,后面的字符可以是任意的,因此这样的匹配也能成功;第四个:R.* 注:第一个字母被绝对匹配,后面的字符可以是任意的匹配原则,所以也成功了。在这个例子中遇到了一个.*的匹配符号,在这里我只解释:. 代表任何字符、* 代表任何字符即.可以出现零次或多次,这是一个非常常用的匹配符号,大家最好能够记住。类似的,要想写出符合自己需求的正则表达式,可以参照构造类表对各类字符,以及匹配原则和方法的规定实现。第三篇:
11、正则表达式中的一个重要概念:量词为 什么说量词是正则表达式中的一个重要的概念呢,如何有Java编程思想一书的同学可以看到,量词被放到了单独的一个章节进行了讲述,由此可见其一同一 般,主要是因为量词构造集在正则表示式的编写的时候是使用率非常平凡的构造集,也可以理解为是正则表达式的一个灵魂,所以要重视它的重要性。量词,字面上的理解就是数量词,在正则表达式它又是被如何重新理解的呢?在Java编程思想一书中的定义是:“量词描述了一个模式吸收输入文本的方式”,这里的方式被分为三种:贪婪的、勉强的、占有的。通俗的解释可以是这样的:对一个字符或字符串在对出现次数上进行的限制和匹配。在上面的构造集中也写出了这
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java正则表达式详解 IIIIII Java 正则 表达式 详解
限制150内