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

     一、re模块下的常用方法  :  findall   search   match   spilt  sub   subn  compile   finditer
    首先要:
    import re 导入模块
    findall   在字符串中查找所有满足条件的,并返回
    ret=re.findall('a','asdvma')
    print(ret)
    #['a', 'a']
    search  查找函数会在字符串内查找到第一个匹配,然后返回这个对象,
    只有通过调用group()方法才能得到匹配的字符串,如果字符串没有匹配,则返回None。
    
    
    ret=re.search('a','asdvma')
    print(ret.group())
    #a
    match   从字符串第一个字符开始查找,第一个没有就不再往后找了
    re=re.search('a','asdvma')
    print(re.group())     #a
    ret=re.search('c','asdvma')
    print(ret.group())   #找不到,调用group 会报错
    #match是从头开始匹配,如果正则规则从头开始可以匹配上,就返回一个变量。
    #匹配的内容需要用group才能显示
    #如果没匹配上,就返回None,调用group会报错
    spilt 
    ret = re.split('[ab]', 'abcd')
    print(ret)  # ['', '', 'cd']
    #先按'a'分割得到''和'bcd',在对''和'bcd'分别按'b'分割
    sub   把正则找到的字符替换为你想转成的字符
    ret=re.sub('a','H','ERGJFVacza')
    print(ret)    #ERGJFVHczH
    subn  把正则找到的字符替换为你想转成的字符,并且返回替换的数量
    ret=re.subn('a','H','ERGJFVacza')
    print(ret)    
    #('ERGJFVHczH', 2)  返回元组(替换的结果,替换了多少次)
    finditer返回一个存放匹配结果的迭代器
    ret=re.finditer('a','fnksdngaadmsva')
    print(ret)   #<callable_iterator object at 0x01D4E9B0>   返回迭代器
    print(next(ret).group())        #a  #查看第一个结果
    print(next(ret).group())        #a  #查看第二个结果
    print([i.group() for i in ret])  #查看剩余的左右结果
    for i in ret:
        print(i.group())
     二、正则使用进阶,取消正则优先级  ?:
    import re
    ret=re.findall('www.(a|b).com','www.a.com')
    print(ret)    #['a']  因为findall会优先把匹配结果组里内容返回,如果想要匹配结果,取消权限即可.
    取消优先级,即在括号最前面加   ?:  就可以了
    ret=re.findall('www.(?:a|b).com','www.a.com')
    print(ret)   #['www.a.com']
    
    
    ret=re.split('d+','sadj4j3f2')
    print(ret)    #['sadj', 'j', 'f', '']
    ret=re.split('(d+)','sadj4j3f2')     # 加括号,结果是把数字也保留下来了
    
     
     
  • 相关阅读:
    【考试反思】联赛模拟测试16
    【考试反思】联赛模拟测试15
    【考试反思】联赛模拟测试14
    【考试反思】联赛模拟测试13
    【学习笔记】震惊,全机房都会分块了,就我没有
    挂分宝典
    「计数」客星璀璨之夜 + 大佬
    第五阶段反思
    「板子」线段树维护单调栈
    阶段反思
  • 原文地址:https://www.cnblogs.com/zzy-9318/p/8253558.html
Copyright © 2011-2022 走看看