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')     # 加括号,结果是把数字也保留下来了
    
     
     
  • 相关阅读:
    Chapter 03Using SingleRow Functions to Customize Output(03)
    Chapter 03Using SingleRow Functions to Customize Output(01)
    Chapter 04Using Conversion Functions and Conditional ExpressionsNesting Functions
    Chapter 04Using Conversion Functions and Conditional ExpressionsGeneral Functions
    Chapter 11Creating Other Schema Objects Index
    传奇程序员John Carmack 访谈实录 (zz.is2120)
    保持简单纪念丹尼斯里奇(Dennis Ritchie) (zz.is2120.BG57IV3)
    王江民:传奇一生 (zz.is2120)
    2011台湾游日月潭
    2011台湾游星云大师的佛光寺
  • 原文地址:https://www.cnblogs.com/zzy-9318/p/8253558.html
Copyright © 2011-2022 走看看