• python re 正则表达式


    import re

    result1 = re.match('d+', '1sssda22wdasfsa') # 匹配开头
    print type(result1)
    print result1
    if result1:
    print result1.group()
    else:
    print 'nothing'

    result2 = re.search('d+', 'ssss333dawd44asfsa') # 找到第一个匹配
    print type(result2)
    print result2
    if result2:
    print result2.group()
    else:
    print 'nothing'

    result3 = re.findall('d+', 'ssss333dawd44asfsa') # 找到所有匹配,输出列表
    print type(result3)
    print result3

    a = 'ssss123dawd45867asf956sa'
    result4 = re.compile('d+')
    print result4.findall(a) # 相比result3少了一次编译('d')的过程,效率更高

    result5 = re.search('(d+)w*(d+)', a)
    result6 = re.search('(d+)dawd(d+)', a)
    print result5.group(), result6.group()
    print result5.groups(), result6.groups()

    ip = 'inet 192.168.112.130/24 brd 192.168.112.255 scope global eth0'
    print re.findall('(?:d{1,3}.){3}d{1,3}', ip)
    print re.findall('[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}', ip)


    输出:
      

    <type '_sre.SRE_Match'>

    <_sre.SRE_Match object at 0x000000000269A718>
    1
    <type '_sre.SRE_Match'>
    <_sre.SRE_Match object at 0x000000000269A780>
    333
    <type 'list'>
    ['333', '44']
    ['123', '45867', '956']
    123dawd45867asf956 123dawd45867
    ('123', '6') ('123', '45867')
    ['192.168.112.130', '192.168.112.255']
    ['192.168.112.130', '192.168.112.255']

     

    . 匹配任意字符,换行符 除外
    * 匹配前一个字符0次或无限次
    ? 匹配前一个字符0次或一次
    .* 贪心算法
    .*? 非贪心算法
    () 括号内的数据作为结果返回,分组

    {n}  匹配n次

    {n,m} 匹配n到m次


    findall 匹配所以符合规律的内容,返回包含结果的列表

    search 匹配并提取第一个符合规律的内容,返回一个正则表达式对象(obiect)

    sub 替换符合规律的内容,返回替换后的值

    d 数字
    + >=1
    w 字符
    制表符

  • 相关阅读:
    创建基于 SQL Server 表的外部内容类型
    symfony入门之 app/console 命令
    git上传代码到github
    ubuntu下配置apache虚拟主机
    ubuntu14.04下解决编辑器无法输入中文
    PHP把域名解析为站点IP
    mysql平常总结
    php防sql注入函数
    常用的正则检测总结
    redis缓存注意事项
  • 原文地址:https://www.cnblogs.com/3one/p/5537368.html
Copyright © 2020-2023  润新知