现在的位置: 首页 > 综合 > 正文

正则表达式的整理

2013年10月05日 ⁄ 综合 ⁄ 共 1490字 ⁄ 字号 评论关闭

 

\d (digital) 匹配一个数字字符。= [0-9]
\D    = [^0-9]
\w  (word)  匹配包括下划线的任何单词字符。=[A-Za-z0-9_]。
\W    =[^A-Za-z0-9_]
\s  (space) 匹配任何空白字符,包括空格、制表符、换页符等等。= [ \f\n\r\t\v]
\S   匹配任何非空白字符。= [^ \f\n\r\t\v]
.(点号)  任一字符
[...]  括号中的任一字符
[^…]  非括号中的任一字符
 
====================================
{n}  {n,}  {n,m}  匹配前面的字符或组串出现的次数区间
? 匹配前面的字符0次或1次
+ 匹配前面的字符至少1次
* 匹配前面的字符至少0次

如果上面的基础上,后面跟一个“?”,则表示取区间开始基数为判断准则
例子:
 字符串:1abc31s
 reg:\d+
 mach:{1}{31}
 reg:\d+?
 mach:{1}{3}{1}

^ 匹配行首(^sel)
$ 匹配行尾(fin$)
====================================
| 指定字符替换,即该位置可以是|两边的任一个表达式
\  转义
 如:
 \.   匹配“.”  
 \*   匹配“*”  
 \(   匹配“(”  
 \)   匹配”)”  
 \?   匹配“?“  
 \+   匹配“+“  
 \|   匹配“|“  
 \{   匹配“{“  
 \}   匹配“}“  
 \^   匹配“^“  
 \$   匹配“$“  
 \n   匹配换行符  
 \r   匹配回车  
 \t   匹配Tab键  
 \v   匹配垂直制表符  
 \f   匹配换页符  
()  捕获符号
====================================
(exp)         匹配exp,并捕获文本到自动命名的组里
(?<name>exp)  匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)
(?:exp)       匹配exp,不捕获匹配的文本,也不给此分组分配组号

零宽断言(定义:像\b,^,$那样用于指定一个位置,这个位置应该满足一定的条件(即断言),因此它们也

被称为零宽断言。)
(?=exp)  匹配exp前面的位置
(?<=exp) 匹配exp后面的位置
(?!exp)  匹配后面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置
(?#comment) 注释;正则表达式不做处理,用于注释
 例如:2[0-4]\d(?#200-249)|25[0-5](?#250-255)|[01]?\d\d?(?#0-199)

 例子:
 字符串:I'm singing while you're dancing strings
 reg: \b\w+(?=ing\b)
 mach: {sing}{danc}

 字符串:reading a book
 reg: (?<=\bre)\w+\b
 mach: {ading}

 例子:
 字符串:abcme one youabcyou two heabc
 reg: \b((?!abc)\w)+\b
 mach: {one}{two}

忽略模式里的空白符:
 (?<=    # 断言要匹配的文本的前缀
 <(\w+)> # 查找尖括号括起来的字母或数字(即HTML/XML标签)
 )       # 前缀结束
 .*      # 匹配任意文本
 (?=     # 断言要匹配的文本的后缀
 <\/\1>  # 查找尖括号括起来的内容:前面是一个"/",后面是先前捕获的标签
 )       # 后缀结束

====================================

抱歉!评论已关闭.