文档介绍:中关村国际软件人才教育联盟第二十五讲第二十五讲正则表达式正则表达式 2 2 中关村国际软件人才教育联盟这些是什么? 这些是什么? ??““[0-9A-Za-z]+@([0-9a-zA- [0-9A-Za-z]+@([0-9a-zA- Z]+.){1,2}(com| net| cn| ) Z]+.){1,2}(com| net| cn| ) ””??““[\ u4e00-\ u9fa5] [\ u4e00-\ u9fa5] ””??““ http:/ / ([\ w http:/ / ([\ w -]+\ .)+[\ w-]+(/ [\ w -]+\ .)+[\ w-]+(/ [\ w - ./ ?%&=] - ./ ?%&=] * * )? )?””??““ 1\ \ d{2} 1\ \ d{2} ”” 3 3 中关村国际软件人才教育联盟目标目标??正则表达式的概念正则表达式的概念??正则表达式的基本语法正则表达式的基本语法??在在 Java Java 中使用正则表达式中使用正则表达式??常用正则表达式常用正则表达式 4 4 中关村国际软件人才教育联盟正则表达式的概念正则表达式的概念?正则表达式(regular expression) 是由普通字符(例如字符 a 到z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配 5 5 中关村国际软件人才教育联盟正则表达式的组成部分正则表达式的组成部分 11-1 11-1 ?普通字符–由所有那些未显式指定为元字符的打印和非打印字符组成。这包括所有的大写和小写字母字符、所有数字、所有标点符号以及一些符号?非打印字符–\f匹配一个换页符–\n匹配一个换行符–\r匹配一个回车符–\s匹配任何空白字符,包括空格、制表符、换页符等等–\S匹配任何非空白字符–\t匹配一个制表符–\v匹配一个垂直制表符 6 6 中关村国际软件人才教育联盟正则表达式的组成部分正则表达式的组成部分 11-2 11-2 ?特殊字符–所谓特殊字符,就是一些有特殊含义的字符–特殊字符说明–$匹配输入字符串的结尾位置–( )标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用–*匹配前面的子表达式 0次或多次–+匹配前面的子表达式 1次或多次–.匹配除换行符\n之外的任何单字符–[标记一个中括号表达式的开始–?匹配前面的子表达式 0次或 1次 7 7 中关村国际软件人才教育联盟正则表达式的组成部分正则表达式的组成部分 11-3 11-3 –特殊字符说明–\将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, ‘n’匹配字符‘n‘,而'\n' 匹配换行符。序列'\\' 匹配"\" ,而'\(' 则匹配"(" –^匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合–{标记限定符表达式的开始–|指明两项之间的一个选择 8 8 中关村国际软件人才教育联盟正则表达式的组成部分正则表达式的组成部分 11-4 11-4 ?限定符–限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。共 6种: –限定符说明–*匹配前面的子表达式 0次或多次–+匹配前面的子表达式 1次或多次–?匹配前面的子表达式 0次或 1次–{n} n 是一个非负整数。匹配确定的 n 次–{n,} n 是一个非负整数。至少匹配 n 次–{ n,m } m 和 n 均为非负整数,其中 n <= m 。最少匹配 n 次且最多匹配 m 次。注意在逗号和两个数之间不能有空格 9 9 中关村国际软件人才教育联盟正则表达式的组成部分正则表达式的组成部分 11-5 11-5 ?定位符–用来描述字符串或单词的边界, ^和$分别指字符串的开始字符与结束字符–不能对定位符使用限定符?选择–用圆括号()将所有选择项括起来,相邻的选择项之间用|分隔 10 10 中关村国际软件人才教育联盟正则表达式的组成部分正则表达式的组成部分 11-6 11-6 ??其它其它–(pattern) 匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到–(?:pattern) 匹配 pattern 但不获取匹配结果, 也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用"或" 字符(|) 来组合一个模式的各个部分是很有用。例如, ' industr(?:y|ies ) 就是一个比' industry|industries ' 更简略的表达式