zoukankan      html  css  js  c++  java
  • Python全栈开发——正则表达式

    re模块(正则表达式使用模块)
    1.元字符(.,^,$,*,+,?,{},|,(),)
    .   通配符(什么都可以代替,除了换行符)
    ^   匹配开头
    $   匹配结尾
    2.重复
    *   无穷次重复左边的字母        (0到无穷次)
    +    1到无穷次匹配              (左边字符)
    ?   0到1次匹配                 (左边字符)
    {}   自定义匹配重复多少次       (左边字符)
    注意:上面的都是贪婪匹配(会匹配最多出现的次数)在后面加 ? 就会变成懒惰匹配

    #元字符之字符集[]
    #无特殊符号的字符集
    import re
    print(re.findall('[sdgsd]','gsdh'))   #表或
    #['g', 's', 'd']
    
    #有特殊符号(在元字符里)
    #    -        范围匹配
    print(re.findall('a[a-z]*','hdafhrhr1354'))     #['afhrhr']
    
    #    ^       表非
    print(re.findall('[^a-d]','aaaaffart'))        # ['f', 'f', 'r', 't']
    
    #           转义
    
    #   |  或
    print(re.findall('ka|b','fdkabdv'))         #['ka', 'b']


    3.分组  ()
    有名分组
    (?p<填取的名字>填匹配的正则)

    1 print(re.search('d{5}','dsf24354cxv sf').group())
    2 res=re.search('(?P<name>[a-z]+)d+','alex36ffg')
    3 print(res.group())           #alex36
    1 res=re.search('(?P<name>[a-z]+)d+','alex36ffg').group('name')
    2 print(res)                   #alex


    注意:会优先匹配组中内容,去优先级,再组开头加  ?:

    print(re.findall('www.(baidu|134).com','www.baidu.com')) 
     #['baidu']
    print(re.findall('www.(?:baidu|134).com','www.baidu.com'))
     #['www.baidu.com']


    4.re常用方法
    re.search()         #只找一个匹配结果返回,返回的是一个对象,用group()方法拿到结果
    re.findall()        #将所有拿到的结果放在一个列表里面
    re.match()          #同search方法,不过只会从开头匹配
    re.split()          #分割匹配,结果返回列表 
    re.sub()            #匹配后替换 
    re.compile()        #写规则
    re.finditer()       #得到的结果放在迭代器中

     1 print(re.match('d+','dsg34'))     #None
     2 print(re.match('d+','3435gd'))     #<re.Match object; span=(0, 4), match='3435'>
     3 print(re.match('d+','3435gd').group())   #3435
     4 
     5 
     6 print(re.split('[a-z]','gs32dsf24fvg43')) #['', '', '32', '', '', '24', '', '', '43']
     7 
     8 print(re.sub('d+','luji','fgs23dbg34'))  #fgslujidbgluji
     9 print(re.sub('d+','luji','fgs23dbg34',1)) #fgslujidbg34
    10 
    11 
    12 com=re.compile('d+')
    13 print(com.findall('fsd34dsfg344g'))  #['34', '344']
    14 
    15 
    16 res=re.finditer('d','dfg2433fdgb443')
    17 print(res)     #<callable_iterator object at 0x00B1CB30>
  • 相关阅读:
    广通软件招聘-北京广通信达软件股份有限公司杭州分公司招聘-拉勾网
    广通软件
    Django – vicalloy's trac
    MyCAT常用分片规则之分片枚举
    django-extensions 文档 — django-extensions 1.2.5 文档
    Samba服务搭建 | Charlie's Blog
    Centos搭建Samba
    sqlite常用的命令-增删改查
    Win7 NFS 设置详解 | X-Space
    LabF nfs window client
  • 原文地址:https://www.cnblogs.com/lujiacheng-Python/p/9703755.html
Copyright © 2011-2022 走看看