|
|
|
|
Blog信息
|
blog名称:四裤全输的小窝~~ 日志总数:178 评论数量:699 留言数量:198 访问次数:1151176 建立时间:2005年10月29日 | |
|
|
|
|
 |
|
|
|
|
[其它]正则表达式
文章收藏 四裤全输 发表于 2005/11/10 21:42:02
|
在匹配模式中,主要包括以下几种模式:
1、"." 点符号匹配. 这里的.符号是一个通配符,它可以匹配任意字符,包括打印和非打印字符,比如~!@#$%^&*()_+|abc123等等。
2、"[]" 方括号匹配[0-9] 方括号中的内容表示匹配的具体内容,这里指的是匹配0-9区间的任意数字,可以使用于大多场合。[a-z] 方括号中的内容表示匹配的具体内容,这里指的是匹配a-z之间的任意字母,可以使用于大多场合。[A-Z] 方括号中的内容表示匹配的具体内容,这里指的是匹配a-z之间的任意字母,可以使用于大多场合。
3、表次数的匹配[a-z]* 这里的*指的是匹配零次或多次。[0-9]+ 这里的+指的是匹配一次或多次。[A-Z]? 这里的?不是乱码,是和上边一样的?字符,它表示匹配零次或者一次。[0-9]{8} 这里的{7}表示的是一个自然正整数,这里是匹配的8位数字,可以是12345678、23456789,一切可以组成串的数字组成。[a-z]{2,5} 这里的{2,5}表示的是至少匹配一次且最多只能匹配两次,可以用这个表过式来匹配中国的电话区号,比如023。
4、"^" "|" "$"否、或、$匹配[^a] 这里的^a表示除了a以外的任意字符,它匹配输入字符串的开始位置。[a|b] 这里的a|b表示a或者b。[a-z]$ 这里的$匹配输入字符串的结束位置。
5、"()" "\s" 圆括号、空字符的匹配([0-9]{1,3}) \s+ [0-9]{8}这里可以匹配为一个电话号码,比如:023 58929875。
6、其它字符的匹配\\ 匹配一个\字符\b 匹配一个单词边界,[er\b]可以匹配never中的er却不可以匹配verb中的er,因为verb中的er是在一个单词中间的。\B 匹配一个单词的非边界和\b相反\cx 匹配由x指明的控制字符,\cM匹配一个Control-M或回车符。x的值必须为a-z或A-Z之一,否则,将c视为一个原义的'c'字符。\d 匹配一个数字字符===[0-9]\D 匹配非数字字符===[^0-9]\f 匹配一个换页符===\x0c和\cL\n 匹配一个换行符\s 匹配任何空白字符,包括空格、制表符、换页符等===[\f\n\t\r\v]\S 匹配任何非空白字符,与\s相反。\t 匹配一个tab字表符===\x09和\cl。\v 匹配一个垂直制表符===\x0b和\cK。\w 匹配包括下划线字符===[a-zA-Z0-9_]。\W 匹配不包括下划线字符===[^a-zA-Z0-9]和\w相反。\r 匹配一个回车符===\x0d和\cM
\xn 匹配n,其中n为十六进制转义值。这个值必须为两个数字长,如[x41]匹配A。\num 匹配num,其中num是一个正整数。对所获取的匹配的引用。如(.)\1匹配两个连续的相同字符。\n 标识一个八进制转义值或一个向后引用。如果\n之前至少有n个()获取表达式,则n为向后引用,否则,如果n为八进制数字(0-7),则n为一个八进制转义值。\nm 标识一个八进制转义值或一个向后引用。如果\n之前至少有n个()获取表达式,则n为向后引用,如果\nm前至少有n个获取,则n为一个后跟文字m的向后引用。如果前面的条件都不满足,若n和m均为八进制数字(0-7),则\nm将匹配八进制转义值nm。\nml 如果n为八进制数字(0-3),且m和l均为八进制数字(0-7),则匹配八进制转义值nml。\un 匹配n,其中n是一个用四个十六进制数字表示的unicode字符。如:\u00A9匹配版权符号©
7、简写[:alnum:] 数字和字母 0-9a-zA-Z[:alpha:] 字母 a-zA-Z[:blank:] 空白类[:cntrl:] 控制字符[:digit:] 数字[:graph:] 除空白以外的可打印可视字符[:lower:] 小写字母[:print:] 可视字符[:punct:] 符号[:space:] 空白字符[:upper:] 大写字母[:xdigit:] 16进制字符部分例子
正则表达式 说明 /\b([a-z]+) \1\b/gi 一个单词连续出现的位置 /(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/ 将一个URL解析为协议、域、端口及相对路径 /^(?:Chapter|Section) [1-9][0-9]{0,1}$/ 定位章节的位置 /[-a-z]/ A至z共26个字母再加一个-号。 /ter\b/ 可匹配chapter,而不能terminal /\Bapt/ 可匹配chapter,而不能aptitude /Windows(?=95 |98 |NT )/ 可匹配Windows95或Windows98或WindowsNT,当找到一个匹配后,从Windows后面开始进行下一次的检索匹配。
|
阅读全文(2371) | 回复(1) | 编辑 | 精华 |
|
|
|
|
|
|
» 1 »
|