正则表达式
表达式 描述 例
. 匹配任意一个字符(除换行符) a.c 匹配abc和adc等,但不匹配abbc
[] 匹配包含在[]中的任意一个字符 a[bc] 匹配ab或ac
[^] 匹配包含在[]之外的 a[^bc]匹配ab和ac以外的
[-] 匹配指定范围 [a-z]匹配小写英文字母,[0-9]匹配数字
() 匹配子串 t(es)t 匹配test或tt
| 匹配两边任一项 sunny? (yes|no)匹配 sunny? yes或者 sunny no
\ 将上面的特殊字符进行转义 a\+b表示a+b,+不再起匹配作用,其它符合同理
\d相当于[0-9]
\D相当于[^0-9]
\w 数字,字母,下划线,中文
\W 非\w的字符
\s 所有的空白字符
\S 非空白字符
匹配前一个表达式多少次:
{n} 匹配n次 [A-Z]{3} 匹配连续3个大写的英文字母,如SIT
{n,} 匹配至少n次
{n,m} 匹配n到m次
? 匹配1次或0次 tes?t 匹配test或tet
* 任意多次(非负) tes?t 匹配tet,test,tesst,tessssssssssst等
+ 匹配1次以上 tes+t匹配test,tesst等
边界标志:
\b \B
^ 行起始标记 ^test 匹配以test起始的字符串/行
$ 行尾标记 $log 匹配以log结尾的字符串/行 。$后不接字符匹配的是换行符/行尾
分组:
(){} 视为一个整体的表达式
(\s) (\S) \2 \1 子模式,组模式 \2对应\S,\1对应\s
python的re模块的功能
pattern = re.compile(r"正则表达式",re.PATTERN)
result = pattern.REFUNCTIONS(目标字符串)//REFUNCTION可以是findall,match等re提供的函数
PATTERN可以是:
re.I(大写的i) 忽略大小写
re.M 多行匹配
re.S 单行匹配