世界的过客

每个人获得的东西都恰好是他值得获得的东西

Python中的正则基础

Python中的re

元字符总览

. ^ $ * + ? { } [ ] \ | ( )

[]

指定字符类, 含义是范围,匹配一组字符 [a-z]表示所有小写字母。 字符类里其他元字符不生效,在字符类里元字符被剥夺特殊性。 反字符类: [^5] 匹配除了 5外任何字符 ^必须是字符类第一个字符,不然无取反的作用。

\

反斜杠后加其他字符的组合特指特殊序列,也用于转义。要取消本身含义需要'\\'\w匹配任何字母数字字符,note:依据正则表达式模式的不同,分为以字节类和Unicodedata模块中标记为字母的所有字符。 在编译时提供re.ASCII可以表示更受限制的\w定义。

类型含义
\d任何十进制数字;这等价于类 [0-9]
\D匹配任何非数字字符;这等价于类 [^0-9]
\s匹配任何空白字符;这等价于类 [ \t\n\r\f\v]
\S匹配任何非空白字符;这相当于类 [^ \t\n\r\f\v]
\w匹配任何字母与数字字符;这相当于类 [a-zA-Z0-9_]
\W匹配任何非字母与数字字符;这相当于类 [^a-zA-Z0-9_]

Repeat

* 匹配前一个字符0~多次, 贪婪的 例子: a[bcd]*b ,匹配类[bcd]中的零或多个字母 + 匹配前一个字符1~多次 ? 匹配0~1词 {m,n} 至少重复m次,最多n次。省略的话会m会是默认0,n为无限。

应用匹配

方法/属性目的
match()确定正则是否从字符串的开头匹配
search()扫描字符串,查找此正则匹配的任何位置。
findall()找到正则匹配的所有子字符串,并将它们作为列表返回。
finditer()找到正则匹配的所有子字符串,并将它们返回为一个 iterator