分享

Python正则表达式小抄

 Yy3318q 2023-05-08 发布于广西

导入

import re
re.findall返回包含所有匹配项的列表
re.finditer返回一个可迭代的匹配对象(每个匹配一个)
re.search如果字符串中的任意位置存在匹配项,则返回一个 Match 对象
re.split返回一个列表,其中字符串在每次匹配时被拆分
re.sub用字符串替换一个或多个匹配项
re.compile编译正则表达式模式供以后使用
re.escape返回所有非字母数字反斜杠的字符串
re.Ire.IGNORECASE忽略大小写
re.Mre.MULTILINE多线
re.Lre.LOCALE使\w\b,\s 语言环境依赖
re.Sre.DOTALL点匹配所有(包括换行符)
re.Ure.UNICODE使\w\b\d\s unicode 依赖
re.Xre.VERBOSE可读风格

re.search()

>>> sentence = 'This is a sample string'>>> bool(re.search(r'this', sentence, flags=re.I))True>>> bool(re.search(r'xyz', sentence))False

re.findall()

>>> re.findall(r'\bs?pare?\b', 'par spar apparent spare part pare')['par', 'spar', 'spare', 'pare']>>> re.findall(r'\b0*[1-9]\d{2,}\b', '0501 035 154 12 26 98234')['0501''154''98234']

re.finditer()

>>> m_iter = re.finditer(r'[0-9]+', '45 349 651 593 4 204')>>> [m[0] for m in m_iter if int(m[0]) < 350]['45', '349', '4', '204']

re.split()

>>> re.split(r'\d+', 'Sample123string42with777numbers')['Sample''string''with''numbers']

re.sub()

>>> ip_lines = 'catapults\nconcatenate\ncat'>>> print(re.sub(r'^', r'* ', ip_lines, flags=re.M))* catapults* concatenate* cat

re.compile()

>>> pet = re.compile(r'dog')>>> type(pet)<class '_sre.SRE_Pattern'>>>> bool(pet.search('They bought a dog'))True>>> bool(pet.search('A cat crossed their path'))False

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多