• 高频正则表达式


    大前提:出现在python中的re模块,出现的匹配规则,

      第一:斜杠都是反斜杠();

      第二:默认情况下,都为匹配为贪婪模式;

      第三:返回值都是列表数据类型,当没有匹配到会匹配为空列表。

    非贪婪模式:当我们进行一次正则匹配,例如同时匹配ab,abb,abbbb,规则会将这一次匹配结果为ab,贪婪则会匹配为abbbb,b次数最多的一次。

     代码如下:res = re.findall(r'ab*?','abbbbbbb')      ?:转化为非贪婪模式。

    分组: 

    ()分组,将括号的结果,放到列表里面。 

    (?:) 取消分组,只是作为整体的作用;

    (?p<name>) 有名分组 ,就是正则匹配的结果。分组的编号是按照前后的顺序排列的。

    正则其他方法:

    splite:切分分割,返回为一个列表
      re.splite(r'[,@]',s)将S里面的字符按照都还,@符进行匹配。
    sub替换:
      re.sub("python",'Py',s,count=1)
    将python替换成Py字符,并将字符print除来。

    匹配汉字:[u4e00-u9fa5]

    s:空格,制表符,换行符。

    .:会匹配除过 以外的所有字符。

    re.S:会让.能匹配所有的单个字符。

    {n}匹配的次数{n,m},或者{n,m}表示的次数。
    ‘ab?’:表示b匹配0到1个。
    ? 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 。? 等价于 {0,1}。

    多行匹配:

    re.M:进行多行匹配。 s="""
    http:skjfhasu.com
    hhhhhh
    https:\sawff.cn
    """
    print(re.findall(r'^[httphttps].+com$',s,flags=re.M))

    返回值:的是一个空列表或者一个列表。


    剩下的需要我们,一边查一边用。

  • 相关阅读:
    三维偏序(陌上花开)
    【题解】洛谷P4735最大异或和
    【题解】CF#229 E-Gifts
    【题解】JXOI2017颜色
    【题解】SDOI2009Bill的挑战
    【题解】CF#960 H-Santa's Gift
    【题解】Atcoder ARC#85 E-MUL
    【题解】CF#1012 C-Hill
    【题解】CF#852 E-Casinos and travel
    【题解】Atcoder ARC#90 F-Number of Digits
  • 原文地址:https://www.cnblogs.com/zhangte03/p/11360743.html
Copyright © 2020-2023  润新知