python re正则
语法
|
说明
|
表达式实例
|
完整匹配的字符串
|
一般字符
|
匹配自身
|
abc
|
abc
|
.
|
匹配任意字符(\n除外)
|
ab.
|
abc
|
[…]
|
字符集(对应位子可以是字符集中的任意字符)
|
a[bcd]e
|
abe
ace
ade
|
预定义字符集(可以写在字符集[…]中)
|
|
|
|
\d
|
数字:[0-9]
|
a\dc
|
a1c
|
\D
|
非数字[^\d]
|
a\Dc
|
abc
|
\s
|
空白字符:[<空格>\t\r\n\f\v]
|
a\sc
|
a c
|
\S
|
非空白字符:[^\s]
|
a\Sc
|
abc
|
\w
|
单词字符:[A-Za-z0-9_]
|
a\wc
|
abc
|
\W
|
非单词字符:[^\w]
|
a\Wc
|
a c
|
数量词(用在字符或(…)之后)
|
|
|
|
*
|
匹配前一个字符0次或无限次
|
abc*
|
ab
abccc
|
+
|
匹配前一个字符1次或无限次
|
abc+
|
abc
abccc
|
?
|
匹配前一个字符0次或1次
|
abc?
|
ab
abc
|
{m}
|
匹配前一个字符m次
|
ab{2}c
|
abbc
|
{m,n}
|
匹配前一个字符m至n次
|
ab{1,2}c
|
abc
abbc
|
*? +? ?? {m,n}?
|
使* + {m,n}变成非贪婪模式
|
|
|
边界匹配
|
|
|
|
^
|
匹配字符串开头
在多行模式中匹配每一行开头
|
^abc
|
abc
|
$
|
匹配字符串末尾
多行模式中每一行末尾
|
$abc
|
abc
|
逻辑和分组
|
|
|
|
|
|
左右任意匹配一个
|
abc|def
|
abc
def
|
(…)
|
分组
|
(abc){2}
a(123|456)c
|
abcabc
a123c
a456c
|
(?P<name>…)
|
分组,原有编号指定别名
|
(?P<id>abc){2}
|
abcabc
|
(?p=name)
|
引用别名为<name>分组的字符串
|
(?P<id>\d)abc(?P=id)
|
1abc1
|
正则匹配模式表
标志 |
含义 |
re.S(DOTALL) |
使.匹配包括换行在内的所有字符 |
re.I(IGNORECASE) |
使匹配对大小写不敏感 |
re.L(LOCALE) |
做本地化识别(locale-aware)匹配,法语等 |
re.M(MULTILINE) |
多行匹配,影响^和$ |
re.X(VERBOSE) |
该标志通过给予更灵活的格式以便将正则表达式写得更易于理解 |
re.U |
根据Unicode字符集解析字符,这个标志影响\w,\W,\b,\B |
方法/属性
|
作用
|
match()
|
字符串开始位置匹配,成功返回MatchObject,失败返回None
|
search()
|
扫描字符串,找到RE匹配的位置,成功返回MatchObject,失败返回None
|
findall()
|
找到RE匹配的所有子串,作为一个列表返回
|
finditer()
|
找到RE匹配的所有子串,作为一个迭代器返回
|
方法/属性
|
作用
|
group()
|
返回被RE匹配的字符串
|
start()
|
返回匹配开始的位置
|
end()
|
返回匹配结束的位置
|
span()
|
返回一个元祖包含匹配(开始,结束)的位置
|
参数
|
描述
|
patten
|
正则表达式
|
string
|
被搜索匹配的字符串,字符串开始
|
flags
|
正则表达式修饰符
|
匹配对象的方法
|
描述
|
group(num=0)
|
返回整个匹配(指定分组)
|
groups()
|
以元祖形式返回匹配子组
|
参数
|
描述
|
patten
|
正则表达式
|
string
|
被搜索匹配的字符串,字符串开始
|
flags
|
正则表达式修饰符
|
匹配对象的方法
|
描述
|
group(num=0)
|
返回整个匹配(指定分组)
|
groups()
|
以元祖形式返回匹配子组
|