zoukankan      html  css  js  c++  java
  • python re模块

    # re模块  findall(模式,字符串,flags= 0(默认0)
    #    返回字符串中所有不重叠匹配的列表,返回所有匹配的内容
    #    如果模式中存在一个或多个捕获组,则返回
    # 组的列表;如果是模式,这将是一个元组列表
    # 有多个组
    #  注意 :  findall的分组用法
    
    # findall(pattern, string, flags=0):
    #返回字符串中所有不重叠匹配的列表
    # import re
    # ret = re.findall("d","12333dddkjkkkk122")   #   模式  字符串
    #
    # print(ret)   #   ['1', '2', '3', '3', '3', '1', '2', '2']   返回所有匹配上内容是一个列表
    #
    # ret1 = re.findall("w","weeii2222")
    #
    # print(ret1)    #   ['w', 'e', 'e', 'i', 'i', '2', '2', '2', '2']
    
    #  search (模式,字符串  ,默认0)
    #def search(pattern, string, flags=0):
    #  扫描字符串寻找匹配的模式,返回
    #  匹配对象,如果没有找到匹配,则为None。
    
    # import re
    # ret = re.search("d","ww222sssd")
    # print(ret)   #  匹配的返回内容     <re.Match object; span=(0, 1), match='2'>    #  返回匹配对象
    # print(ret.group())    #  返回  2   # 返回的对象通过group来获取匹配到的第一个结果
    
    #
    #  match(pattern, string, flags=0):  #  跟search的区别是只匹配开头第一个符合的字符,否者返回None
    # 尝试在字符串开头应用模式,返回
    # 匹配对象,如果没有找到匹配,则为None
    # import re
    # ret = re.match("d","233dddfffff44")
    # print(ret)   # <re.Match object; span=(0, 1), match='2'>  返回一个匹配对象
    # print(ret.group())   #  2
    # ret1 = re.match("d","a^222")
    # print(ret1)
    
    # 替换sub (pattern, repl, string, count=0, flags=0)
        #sub(  模式,    替换,  字符串, 替换次数, 默认0)
    #返回替换最左边所获得的字符串
    # 不重叠的模式在字符串中的出现
    # 替换repl。repl可以是字符串,也可以是可调用的;
    # 如果一个字符串,反斜杠转义将被处理。如果它是
    # 一个可调用的,它传递了Match对象并且必须返回
    # 要使用的替换字符串
    # import re
    # ret = re.sub("d","H","weee33")    #  默认全部替换
    # print(ret)  #  weeeHH  返回内容
    
    #  subn(pattern, repl, string, count=0, flags=0):
    # 返回一个包含两个元组(new_string, number)。
    # new_string是替换最左边的字符串
    # 源中模式的不重叠出现
    # 字符串由替换repl。数字是
    # 替换。repl可以是字符串或a
    # 可调用的;如果处理一个字符串,反斜杠转义。
    # 如果它是可调用的,它将传递Match对象并必须
    # 返回要使用的替换字符串。
    
    # ret1 = re.subn("d","H","1dfff333")
    # print(ret1)     #  返回替换内容和次数,也可以设置替换次数
    
    # ret2 = re.subn("d","H","123ddgf33",1)   #  设置替换一次
    # print(ret2)    #  返回替换内容和次数
    
    # split(pattern, string, maxsplit=0, flags=0)  切割
    #通过模式的出现来分割源字符串,
    # 返回包含结果子字符串的列表。如果
    # 捕获括号在模式中使用,然后是所有文本
    # 模式中的组也作为结果的一部分返回
    # 列表。如果maxsplit不为零,那么在大多数情况下,
    # 字符串的其余部分作为最终元素返回
    # 的列表。
    
    # import re
    # ret = re.split("d","12ssdd45fff")
    # print(ret)    #  ['', '', 'ssdd', '', 'fff']  #  切割内容是列表,空白字符
    #
    # ret = re.split("(d)","12ssdd45fff")    #  如果切割用括号,泽返回切割的内容
    # print(ret)   #  ['', '1', '', '2', 'ssdd', '4', '', '5', 'fff']  返回了切割的类容
    #
    
    # 进阶方法 - 爬虫自动化开发
    # complit(pattern, flags=0)
    # 编译正则表达式模式,返回模式对象
    # (预编译)节约时间 只有多次使用某一个相同的正则表达式的时候,这个complit才会帮助提高效率
    # import re
    # ret = re.compile("d")
    # ret1 = ret.search("22rffff")
    # print(ret1)
    # ret2 = ret.findall("22wwww")
    # print(ret2)
    
    #finditer(pattern, string, flags=0)   空间效率
    #字符串。对于每个匹配,迭代器返回一个匹配对象
    #结果中包含空匹配项
    import re
    ret = re.finditer("d","23dddd33")
    print(ret)  #  <callable_iterator object at 0x00000000006D1BE0>  迭代器
    for r in ret:
        #print(r)
        print(r.group())
    

      

  • 相关阅读:
    Python自动补全
    Ubuntu的Mysql指南
    Kubernetes deployed on multiple ubuntu nodes
    【iOS】更新 CocoaPods 后 Podfile 报错
    【iOS】Xcode 使用 CocoaPods 导入第三方库后没有提示
    【iOS】build diff: /../Podfile.lock: No such file or directory
    【iOS】Interface Builder 预览
    【iOS】this class is not key value coding-compliant for the key ...
    【iOS】XIB 调整视图大小
    【iOS】[[NSBundle mainBundle] loadNibNamed:nibTitle owner:self options:nil] 异常
  • 原文地址:https://www.cnblogs.com/caodneg7/p/9439531.html
Copyright © 2011-2022 走看看