re模块的高级使用

Posted z-qinfeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了re模块的高级使用相关的知识,希望对你有一定的参考价值。

主要有四个方法:

  search : 从字符串的任意位置开始检索,首次匹配即结束 

  findall : 全部匹配

  sub : 将正则匹配结果进行替换 

  split : 根据正则匹配结果将字符串进行切分,然后返回一个列表

 

import re

‘‘‘
    search  从字符串的任意位置搜索匹配,检索到第一个匹配的字符串,就结束匹配
‘‘‘

r = re.search(rd+, 有点饿4556)
print(r)
print(r.group())  # 4556

r = re.search(r^d+$, 有点饿4556)
print(r)  # None

r = re.search(rd+, 有点饿4556 rwehjr 789)
print(r)
print(r.group())  # 4556

‘‘‘
    findall  从字符串的任意位置搜索匹配,匹配所有
‘‘‘

r = re.findall(rd+, 有点饿4556 rwehjr 789)
print(r)  # [‘4556‘, ‘789‘]

‘‘‘
sub  将匹配到的数据进行替换
‘‘‘

r = re.sub(rc, python, c一统江湖, c走向死往)
print(r)  # python一统江湖, python走向死往

r = re.sub(rd+, 250, c=1000, python=3000)
print(r)  # c=250, python=250


def func(d):
    ‘‘‘表示真正匹配到的结果‘‘‘
    print(d.group())  # 这里会打印 1000, 3000, 说明匹配了两次,也说明了func调用了两次
    return 666  # 这里返回int类型竟然报错


r = re.sub(rd+, func, c=1000, python=3000)
print(r) # c=666, python=666



def func1(d):
    return  str(int(d.group())+50)

r = re.sub(rd+, func1, c=1000, python=3000)
print(r) # c=1050, python=3050


‘‘‘
split 切分
‘‘‘

s = admin:root boot,jet
r = re.split(r:|s|,,s)
print(r) # [‘admin‘, ‘root‘, ‘boot‘, ‘jet‘]

 

 

以上是关于re模块的高级使用的主要内容,如果未能解决你的问题,请参考以下文章

Python高级详解 正则表达式(re模块)

Python高级详解 正则表达式(re模块)

re模块的高级用法

python中的re模块

python常用模块

python 正则表达式 re模块基础