• 正则表达式


    匹配到你想要的

    import re

    #以findall为例

    print(re.findall())#findall的括号里分为两部分,第一部分是你需要什么,即正则表达式,如print(re.findall('w','12321323123'))

    12321323123则为你要匹配的字符串

    常用的表达式有

    w#匹配字母数字下划线

    W#匹配非字母数字下划线

    s#匹配任意空白字符

    S#匹配任意非空字符

    d#匹配任意数字[0-9]

    D#匹配任意非数字

    A#匹配字符串开始

    #匹配字符串结束

    ^从头开始找 findall('^e','e123')结果为e,只能找到一个e

    $从结尾找 a$findall('&3','e123'),能找到一个3

    .代表任意一个字符print(re.fandall('a.b','a1b a b a-b aaaab')) 匹配到a1b a b a-b aab

    ?问好左边的出现过0次或1次print(re.fandall('ab?','a ab abb abbbb a1b'))匹配到a ab ab ab a

    * 代表*左边的字符出现0次到正无穷次print(re.fandall('ab*','a ab abb abbbb a1b'))匹配到 a ab abb abbbb a

    + 代表+号左边的字符出现1次到无穷次print(re.fandall('ab+','a ab abb abbbb a1b'))匹配到 ab abb abbbb  

    {m,n}代表括号左边字符出现m到n次print(re.fandall('ab{0,1}','a ab abb abbbb a1b'))匹配到a ab ab ab a,与?号一致

    print(re.fandall('ab{0,}','a ab abb abbbb a1b'))匹配到 a ab abb abbbb a 不写就是正无穷次 结果与*号一致

    print(re.fandall('ab{1,}','a ab abb abbbb a1b'))匹配到 ab abb abbbb  不写就是正无穷次 结果与+一致

    也可以取{2,4}     print(re.fandall('ab{2,4,}','a ab abb abbbb a1b') 结果abb abbbb

    贪婪匹配     .*

    print(re.findall('a.*b','a1234567b123b')) 结果 a1234567b123b

    非贪婪匹配  .*? 

    print(re.findall('a.*b?','a1234567b123b'))结果a1234567b

    |或者

    print(re.findall('compan(iess|y)','companiess,company'))匹配到 iess y,只能取到组里的内容iess和y

    要想全部取出需加固定写法?:

  • 相关阅读:
    2019春总结作业
    2019春第十二周作业
    2019春第十一周作业
    第10周作业---读后感?或许吧。
    第九周作业
    2019春第八周作业
    2019春第七周作业
    第六周作业
    2——目标与榜样
    1——自我介绍
  • 原文地址:https://www.cnblogs.com/liqui/p/8262774.html
Copyright © 2020-2023  润新知