zoukankan      html  css  js  c++  java
  • re正则

     s = 'aaab2c1d3b4'
    match()匹配开头,匹配到一个就返回
    re.match('a;s)
    a
    search(),匹配所有,匹配到就返回, [ ]代表范围
    print(re.search('[0-9]',s))
    2
    
    

    findall()  匹配所有,找到全部,返回列表

    print(re.findall('[0-9]',s))
    ['2', '1', '3', '4']
     '.'匹配任意字符,匹配几个就写几个.
    print(re.search('..',s))
    aa
    '^'匹配开头,效果和macth一样  A
    print(re.search('^aaa',s))
    print(re.match('aaa',s))
    aaa
    aaa
    '$'匹配结尾
    print(re.search('4$',s))
    4
    '*' 匹配*号前的开头字符0次或者多次,如果匹配一个字符,则从开头查找,如果是多个字符,则多个同时查找
    print(re.search('cc1*','1aa1aab1bbc1cc111').group)
    cc111
    '+'匹配前面一个字符1次或者多次,查找全部
    print(re.search('z+','aabb111123daaaa1aazzabbzd'))
    zz
    '?' 匹配一个字符0次或1次
    print(re.search('az?','vazzzzZzyiqunz'))
    az
    {m},匹配一个字符,连续匹配到多少次,
    print(re.search('a{3}','1bbbvvvaaaa'))
    aaa
    {n,m} 匹配一个字符n到m次,默认按匹配最大的匹配,如果最大的没有,就依次匹配小一次
    print(re.search('[a-z]{1,3}','1zheng'))
    zhe
    | 匹配左边或者右边的字符,一个匹配到就返回
    print(re.search('[Z|z]heng','Zheng'))
    Zheng
    '(...)'分组匹配,需要配合groups使用 
    print(re.search('(D+)(d+)','zheng123').groups())
    ('zheng', '123')
    
    
    d+ 匹配数字,相当于[0-9]+ 匹配任意多个数字,贪婪模式
    print(re.search('d+','ascasd1321654132d'))
    1321654132
    D 匹配非数字
    print(re.search('D+','deasq2c123'))
    deasq
    A 只匹配开头,效果和^ match 效果一样
    print(re.search('Aaaa','aaa112av'))
    aaa
    w匹配[A-Za-z0-9]
    print(re.search('w+','asdasd12312asd*asd+'))
    asdasd12312asd
    W匹配非[A-Za-z0-9]
    print(re.search('W+','asdasd123/!*12asd*@asd+'))
    /!*
    '(?P<name>)'分组匹配
    s = '360281199206240010'
    res = re.search('(?P<sheng>d{3})(?P<city>d{3})',s)
    print(res.groupdict())
    {'sheng': '360', 'city': '281'}
    split 和findall功能相反
    print(re.split('D+',s))
    print(re.findall('D+',s))
    ['', '2', '1', '3', '4']
    ['aaab', 'c', 'd', 'b']
    分隔字符,maxsplit 分隔几次
    s = '123,3123,asdasd,234234'
    print(re.split(',',s,maxsplit=2))
    ['123', '3123', 'asdasd,234234']
    fullmatch匹配全部
    print(re.fullmatch('123','123'))
    print(re.fullmatch('w+@w+.(com|cn|edu)','493791411@qq.com'))
    123
    493791411@qq.com
    通过先定义匹配规则,然后在进行匹配,这样如果有大量匹配的时候,效率很高
    ress = re.compile('w+@w+.(com|cn|edu)')
    print(ress.match('493791411@qq.com'))
    
    
     
  • 相关阅读:
    函数和函数模版在一个。cpp中的情况!(除了左移和右移,其他的不要用友元函数!!!)
    const typedef 和指针的问题(这里必须初始化的才初始化了,不必须的则没有初始化)
    const constptr 和引用的盲点(未解决)
    对于数据流建模和行为级建模的梳理(重点)
    vivado实现模16的计数器
    用vivado实现4比特加法器
    三输入或门(发现这个玩意很不好耍,编程出现错误,不知道哪里出现的,一不小心2输成3也无法查证)
    SpringMVC第一个例子
    Mybatis与Spring的mapper代理整合方法
    Mybatis与Spring的原生Dao整合
  • 原文地址:https://www.cnblogs.com/zhengyiqun1992/p/10054061.html
Copyright © 2011-2022 走看看