资源描述:
《正则表达式(陈诗哲)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、正则表达式RegularExpression陈诗哲什么是正则表达式正则表达式是一种语言,它由普通字符和元字符组成的文字模式。除了简单描述这些模式之外,正则表达式引擎通常可用于遍历匹配,并使用模式作为分隔符来将字符串解析为子字符串,或以智能方式替换文本或重新设置文本格式。正则表达式为解决与文本处理有关的许多常见任务提供了有效而简捷的方式。为什么要使用正则表达式在判断EMAIL等传统编程方法可能需要一二十行代码,使用正则表达式只需几行代码而已提高编程效率在Java中使用正则表达式java.util.regex.Patternjava.util.regex.Matcher简单的用法
2、Patternp=Pattern.compile("a*b");Matcherm=p.matcher("aaaaab");booleanb=m.matcher();普通字符普通字符由所有那些除显式指定为元字符的打印和非打印字符组成。这包括所有的大写和小写字母字符,所有数字,以及一些符号。元字符^(carat).(period)$(dollarsign)
3、(pipe)((leftparenthesis))(rightparenthesis)*(asterisk)+(plussymbol)?(questionmark)[(leftbracket)backslash{(leftc
4、urlybracket).符号”.”符号可以匹配单个字符,优点是通用,同时缺点也是通用需求:如果想要找出三个字母组成的字符串,而且这些字符串必须以”t”字母开头,以”n”字母结束。你可以使用一个通配符—”.”。表达式:”t.n”匹配:”tan”,”t2n”,”t#n”,”tn”等[]符号”[]”中可以匹配指定单个字符需求:为了解决句点符号匹配范围过于广泛这一问题,你可以在”[]”里面指定看来有意义的字符。此时,只有”[]”里面指定的字符才参与匹配。表达式:”t[aei]n”匹配:”tan”,”ten”,”tin”^符号”^”用在”[]”内,表示不想要匹配的字符。需求:如果只是
5、想一部分字符不匹配,其他的都匹配可以在”[]”内使用”^”排除指定字符表达式:”[^a]”匹配:除开字母a,其他的都可以匹配()符号和
6、符号”()”和”
7、”符号搭配使用可匹配指定单个或多个字符需求:为解决”.”和”[]”只能匹配单个字符的问题,你可以将”()”和”
8、”符号搭配起来使用。此时,”()”里面指定的单个或多个字符都可以匹配表达式:”t(a
9、e
10、i
11、cv)n”匹配:”tan”,”ten”,”tin”,”tcvn”字符””(反斜杠)元字符既可根据特殊含义“转义”字符,也可指定预定义集合元字符的实例。需求:为了在正则表达式中包括文字样式的元字符,必须使用反斜杠进行“转
12、义”。要匹配”c:”这样的字符串就要先用斜杠元字符来转义文字反斜杠。表达式:”c:\”匹配:”c:”限定符遇到单个字符的重复问题,就要看下面的符号表了,这些符号用来确定紧靠该符号左边的符号出现的次数符号出现次数?0次或1次*大于等于0次+大于等于1次{n}刚好n次{n,}n次以上{n,m}n到m次实例1假如我们现在要搜索电话号码,号码的格式是0731-2221222,用来匹配他的正则表达式。在正则表达式中,连字符”-”有着特殊的意义,它表示一个范围,比如从0到9。因此,匹配电话号码中的连字符号时,它的前面要加上一个转义字符””。判断如下哪个是对的(0-9){4}-(
13、0-9){7}[0-9]{4}-[0-9]{7}实例2在上个实例上进行扩展,要求区号3位或4位都可以,电话号码7位或9位都可以,中间的连字符可以出现也可以不出现。正确的写法是[0-9]{3,4}-?([0-9]{7}
14、[0-9]{9})常用字符集合表示(预定义集合元字符)d:匹配一个数字"[0-9]"D:匹配任何的非数字"[^0-9]"w:匹配所有的数字和字母以及下划线"[A-Za-z0-9_]"W:匹配除数字、字母外及下划线外的其它字符"[^A-Za-z0-9_]"实例3写出一个合法的电子邮件正则表达式1.只能以普通字符开头和结尾2.必须包含一个并且只有一个符号
15、”@”3.必须包含至少一个至多三个符号”.”4.不允许出现”@.”或者”.@”正确的写法是[w]+[@]{1}[w]+[.]{1}[w]+非打印字符(预定义集合元字符)匹配一个换行符t匹配一个制表符r匹配一个回车符f匹配一个换页符v匹配一个垂直制表符s匹配任何空白字符,包括空格、制表符、换页符等等。等价于[frtv]S匹配任何非空白字符定位符^匹配输入字符串的开始位置。如果设置RegExp对象的Multiline属性,^也匹配''或'r'之后的位置。$匹配输入字