python正则表达式基本元字符
. 通配符,匹配所有字符
^abc 匹配以abc开始的字符串
abc$ 匹配以abc结尾的字符串
[abc] 匹配字符集合
[A-Z0-9] 匹配字符范围
ed|ing|s 匹配指定的字符串,诸如ed或者ing或者s
* 前面项目0个或者多个,如a*/[a-z]* (也叫Kleene闭包)
+ 前面项目1个或者多个,如a+、[a-z]+
? 前面项目0个或者1个,如a?、[a-z]?
{n} 重复n次
{n,} 至少重复n次
{,n} 重复不多于n次
{m,n} 至少重复m次不多于n次
a(b|c)+ 括号表示操作符的范围
正则表达式符号:
\b 词边界
\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]
\t 制表符
\n 换行符
贪婪模式
在python中默认采用的是贪婪模式,使用非贪婪模式的话,只需要在量词后面直接加上一个问号”?”。所以,我们可以将贪婪模式理解为:在整个表达式匹配成功的前提下,尽可能多的匹配。
非贪婪模式也就是将我们例子中的正则表达式“ab+”改为”ab+?”
import re
# 将正则表达式编译成pattern对象
pattern = re.compile(r'hello.*\!')
# 使用pattern对象匹配文本,获得匹配结果,无法匹配时返回None
match = pattern.match('str')
#以规则做分割
match = pattern.spilt('')
#替换一些匹配的数据
match = pattern.sub('')
#替换匹配数据的次数
match = pattern.subn('')