• 技术文章 >后端开发 >Python教程

    python正则表达式如何实现重叠匹配

    长期闲置长期闲置2022-07-25 17:20:44转载137
    本篇文章给大家带来了关于Python的相关知识,主要介绍了python 正则表达式如何实现重叠匹配,具有很好的参考价值,下面一起来看一下,希望对大家有帮助。

    【相关推荐:Python3视频教程

    正则表达式实现重叠匹配

    import regex
    string = '100101010001'
    str_re = '101'
    print(regex.findall(str_re, string, overlapped=True))

    普通的re库匹配,只能匹配一个’101’。

    正则表达式与正则匹配

    正则表达式

    正则表达式可理解为对数据筛选的表达式,是有限个原子和元字符组成。

    原子:基本组成单位,每个表达式至少有一个原子

    普通字符组成原子

    非打印字符组成原子

    (不打印在输出台的字符)

    \n:换行

    \t:tab退格符

    通用字符组成原子

    \w:匹配任意字母、数字、下划线

    \W:与\w相反

    \d:匹配任意十进制数

    \D:与\d相反

    \s:匹配任意空白字符,如空格、换行、缩进

    \S:与\s相反

    原子表组成原子

    一组原子组成一个表,由[]声明

    表内原子优先级相等,但内容只出现依次

    若原子表以 ^ 开头,则表示取反

    #普通字符组成原子
    pat1 = "abcd"
     
    #非打印字符组成原子
    pat2 = "\n"
     
    #通用字符做原子
    pat3 = "\w"
     
    #原子表组成原子
    pat4 = "py[abc]"
    #可以匹配pya,pyb,pyc,但匹配pyab等原子表重复出现的情况失败
     
    #原子表开头带 ^ 表示取反
    pat5 = "py[^abc]"
    #第三个位置匹配除了a,b,c外的任意一个字符

    元字符:正则表达式中具有特殊含义的字符

    .匹配任意字符,除了换行符
    ^匹配字符串开始的位置
    $匹配字符串结束的位置,当出现多组符合的匹配时,返回字符串最后的那组匹配
    *匹配 0,1,n 次前面的原子【贪婪模式:尽可能多的匹配】
    ?匹配 0,1 次前面的原子【懒惰模式:精确匹配】
    +匹配 1,n 次前面的原子
    { j }前面的原子出现 j 次
    { j , }前面的原子至少出现 j 次
    { j , k }前面的原子至少出现 j 次,至多出现 k 次
    i | j匹配 i 或 j ,若 i 与 j 同时出现,匹配 i
    ( )组,限制这组数据的组合如()内所描述一样,只返回符合括号内描述的内容

    模式修正符

    即函数中 flag 位置的参数,在不改变正则表达式的情况下改变其含义,调整匹配结果。

    re.I匹配时忽略大小写
    re.M多行匹配
    re.L本地化识别匹配
    re.U根据unicon字符匹配,影响\w \W
    re.S匹配包括换行符

    正则匹配

    正则表达式是对字符串进行模糊匹配,其中一个应用为正则匹配。正则匹配是python爬虫的一个使用技术,用于在爬取的文本信息中提取目标信息。

    正则匹配常用的函数:(调用正则表达式模块re)

    import re
    str = 'python'
    pat = 'pytho[a-n]'
    print(re.search(pat, str))
    import re
    str_1 = 'hello world'
    str_2 = 'world hello'
    pat = 'world'
    print(re.match(pat, str_1))
    print(re.match(pat, str_2))
    import re
    str = "hello world hello world hello world"
    pat = "hello"
    print(re.complie(pat).findall(str))
    print(re.complie(pat).findall(str, 5, 15))
    import re
    str = "400-823-823"
    pat = "-"
    #短横改空格,最大替换次数2
    str_new = re.sub(pat, " ", str, count=2)

    【相关推荐:Python3视频教程

    以上就是python正则表达式如何实现重叠匹配的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:脚本之家,如有侵犯,请联系admin@php.cn删除
    专题推荐:python
    上一篇:Python中闭包与lambda的作用域解析 下一篇:Python轻量级搜索工具Whoosh的使用(总结分享)
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 总结分享Python冷门的技巧• python虚拟环境配置与管理• Python爬虫超详细讲解• 一文搞懂怎么在python中读取和写入CSV文件• 实例分享8个Python自动化脚本
    1/1

    PHP中文网