1. 字符匹配
.
匹配任意单个字符(除了换行符)[]
定义一个字符集合,匹配方括号内的任意字符[^]
定义一个字符集合,匹配除了方括号内的任意字符\d
匹配任意数字,等同于[0-9]
\D
匹配任意非数字字符,等同于[^0-9]
w
匹配任意字母、数字或下划线,等同于[A-Za-z0-9_]
\W
匹配任意非字母、非数字、非下划线字符,等同于[^A-Za-z0-9_]
\s
匹配任意空白符,等同于[\t \r\f\v]
\S
匹配任意非空白符,等同于[^\t \rf\v]
2.数量匹配
*
匹配前面的子表达式零次或多次+
匹配前面的子表达式一次或多次?
匹配前面的子表达式零次或一次{m}
匹配前面的子表达式恰好 m 次(m是一个正整数){m,n}
匹配前面的子表达式至少 m 次,但不超过 n 次(n是一个正整数)
3. 边界匹配
^
匹配字符串开头$
匹配字符串结尾\b
匹配单词边界
4.分组
()
定义一个分组将匹配项组合成一个整体,使用$n引用第n个括号匹配的值(n为正整数)|
表示或,用于匹配两个或多个选项中的任意一个(?:)
定义一个非捕获分组,用于将多个匹配项组合成一个整体,但不保存该组合的结果
5. 常用操作符
re.match()
从字符串起始位置匹配一个模式,如果不是起始位置匹配成功的话,返回 None,否则返回匹配对象(Match Object)re.search()
扫描整个字符串并返回第一个成功的匹配,如果不是起始位置匹配成功的话,返回 None,否则返回匹配对象(Match Object)re.findall()
返回字符串中所有与模式匹配的所有非重叠匹配项,以列表形式返回结果re.sub()
替换与正则表达式 pattern 匹配的子串,并返回替换后的字符串,可以指定替换成的字符串,如果不指定,则返回 None。- re.test() 匹配括号里面的正则表达式