正则表达式

正则表达式有很多版本,在不同语言中支持不同,还有些有扩充

如:sed默认贪婪模式,不支持懒惰、零宽断言

元字符:

.  匹配除换行符(win是\r,Linux是\n)外的任意字符

\w  匹配字母、数字、下划线或汉字

\s  匹配空格符

\d  匹配数字(在sed中不支持,用[0-9])

\b  匹配单词的开始或结束

^  匹配字符串的开始

$  匹配字符串的结尾

\  转义字符

 

限定符:

*  重复0或多次

+  重复1或更多次

?  重复0或1次

{n}  重复n次

{n,}  重复n或更多次

{n,m}  重复n-m次

 

反义:

\W

\S

\D

\B

[^x]

[^aeiou]

 

捕获:

(exp)  匹配exp,并捕获文本到自动命名组里

(?<name>ex)  匹配exp,并捕获文本到name组里

(?:exp)  匹配exp,不捕获匹配的文本,也不分配组号

 

零宽断言:

(?=exp)  匹配exp前面的位置

(?<=exp)  匹配exp后面的位置

(?<!exp)

 

懒惰与贪婪:

*?  重复任意次,但尽可能少

其他限定符后加?  也是表示尽可能少重复

 

posted on 2015-10-02 18:28  Excavator  阅读(132)  评论(0编辑  收藏  举报

导航