python正则表达式高级部分

python3正则表达式,re模块匹配高级部分

\w:匹配[a-zA-Z0-9_]
\s:匹配[\r\t\n\f\v]
re.S:将换行符当作字符串匹配
re.M:多行分别匹配
\A:匹配整个字符串开始,即使多行re.M和re.S都是
\Z:匹配整个字符串结尾,即使多行re.M和re.S都是
\b:匹配单词边界
\B:匹配非单词边界
(?#注释内容):注释,此处不匹配
(?imsuxL):指定匹配编译选项,类似参数re.I,对整条语句起作用
(?imsuxL:re):指定匹配编译选项,类似参数re.I,对括号内语句起作用
\d{m,n}:匹配前面字符出现m到n次
(?<=字符):前向界定匹配,括号内的内容不在结果中显示,匹配内容不可以是正则表达式
(?=字符):后向界定匹配,括号内的内容不在结果中显示,匹配内容可以是正则表达式
(?<!字符):前向非界定匹配,括号内的内容不在结果中显示,匹配内容不可以是正则表达式
(?!字符):后向非界定匹配,括号内的内容不在结果中显示,匹配内容可以是正则表达式
(?P<name>匹配内容)匹配内容(?P=name):进行分组命名和调用
(匹配内容)匹配内容\1:根据分组编号直接调用
(?(id/name)yes-pattern/no-pattern):根据是否匹配到前面的组来选择后面的匹配方式

rcm = re.compile('匹配内容',flags)
rcm.findall(字符串)
rcm.flags:属性
rcm.pattern:属性
rcm.groupindex:属性,组名和组index字典,只包括有组名的组
rcm.groupdict:属性,组名和组值的字典,,只包括有组名的组
rcm.group():返回匹配的内容
rcm.groups():返回匹配的组的元祖
rcm.start([组]):返回匹配组的起始位置
rcm.end([组])
rcm.span([组])
rcm.expand(r'name is \g<index/name>'):根据匹配到的index/name内容组替换index和name的位置
rcm.pos:返回搜索开始的位置
rcm.endpos
rcm.lastindex
rcm.lastgroup


re.finditer()
re.escape(r'原始匹配内容'):将原始需要匹配的字符串转化为正则表达式需要需要匹配的对象,省略手动转义等步骤
match(compile对象,startpoint,endpoint)
search(compile对象,startpoint,endpoint)
findall(compile对象,startpoint,endpoint)
finditer(compile对象,startpoint,endpoint)


re.findall('[\u4e00-\u9fa5]+',string):匹配汉字

re.sub(pattern, repl, string, count=0, flags=0)
repl可以是字符串,也可以是要给函数,如下将匹配数字*2
def double(matched):
    value = int(matched.group('value'))
    return str(value * 2)
s = 'A23G4HFD567'
print(re.sub('(?P<value>\d+)', double, s))

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值