Pythell

博客园 首页 新随笔 联系 订阅 管理

 

正则表达式

描述

示例

^

行首标记

^begin  匹配以begin起始的行

$

行尾标记

end$ 匹配以end结尾的行

.

匹配任意一个字符

dot. 可以匹配dota,但是不能匹配dotted,它只能匹配单个字符

[]

匹配包含在[字符]之中的任意一个字符

coo[kl] 匹配cookcool

[^]

匹配除[^字符]之外的任意一个字符

9[^01] 可以匹配9293等,但不匹配9091

[-]

匹配[]中指定范围内的任意一个字符

[1-8] 匹配从18的任意一个数字

?

至多匹配?之前的项1

colou?r 匹配colorcolour

+

至少匹配+之前的项1

ipad+ 匹配ipadipadd

*

匹配之前的项任意(0或更多)次

co*l 匹配clcolcooooool等。特殊: .* 可以匹配任意次数的不包含换行的字符。

()

创建一个用于匹配的字符串

max(tri)? 匹配max或者maxtri

{n}

匹配之前的项n

[0-9]{2} 匹配任意一个两位数,[0,9]{2} 可以扩展为[0-9][0-9][0-9]

{n,}

至少匹配之前的项n

[0-9]{2,}匹配任意一个两位或更多位数字

{n,m}

匹配之前的项至少n次至多m

[0-9]{2,5} 匹配任意一个2位、3位、4位、5位数等

|

交替一一匹配|两边的任意一项

Oct (1st | 2nd) 匹配Oct 1stOct 2nd

\

转义符,可以将上面介绍的特殊字符进行转义

a\.b 匹配a.b,通过在.之前加上\前缀,从而忽略了.的特殊意义

POSIX字符类是一个形如[:...:]的特殊元序列,它可以用于匹配特定的字符范围。POSIX字符类如下表:

正则表达式

描述

[:alnum:]

字母与数字字符

[:alpha:]

字母字符(包括大写字母与小写字母)

[:blank:]

空格与制表符

[:digit:]

数字字符

[:lower:]

小写字母

[:upper:]

大写字母

[:punct:]

标点符号

[:space:]

包括换行符,回车等在内的所有空白字符

元字符是一种Perl风格的正则表达式,只有一部分文本处理工具支持它,并不是所有的工具都支持下表中所列字符,但是之前介绍的正则表达式和字符类都是被广泛支持的:

正则表达式

描述

示例

\b

单词边界

\bread\b 匹配read

\B

非单词边界

read\B 不匹配read可匹配readding

\d

单个数字字符

b\db 匹配b2bb3b

\D

单个非数字字符

b\Db 匹配bab

\w

单个单词字符(字母、数字、下划线、汉字)

\w 匹配1a_等,但不匹配&#、?

\W

单个非单词字符

\W 匹配&$*#

\n

单次换行符

\n 匹配一个新行

\s

单个空白字符

x\sx 匹配x x(中间有空格)

\S

单个非空白字符

x\Sx 匹配xkx

\r

单次回车字符

\r 匹配回车

 

posted on 2014-04-09 09:28  BeanHe  阅读(182)  评论(0编辑  收藏  举报