zoukankan      html  css  js  c++  java
  • 正则表达式

    1.常用语法

     1 #正则表达式是用来匹配字符串的
     2 
     3 import re
     4 
     5 #匹配,从字符串头开始搜索
     6 res=re.match('[a-z]+','asda213kj21jk3b12jb12')#从字符串头开始搜索
     7 print(res.group())
     8 
     9 #匹配,无前后关系
    10 res=re.search('[0-9]+','asda213kj21jk3b12jb12')#
    11 print(res.group())
    12 
    13 #分割
    14 res=re.split('[0-9]+','asda213kj21jk3b12jb12')
    15 print(res)
    16 
    17 #替换,匹配之后替换
    18 res=re.sub('[0-9]+','|','asda213kj21jk3b12jb12',count=2)#替换两次
    19 print(res)

    结果:

    2.常用字符

     1 #'.' 默认匹配除换行
    之外的任意字符,若指定flag DOTALL,则匹配任意字符
     2 res=re.match('^.+','chen123er567')
     3 print(res.group())
     4 
     5 #匹配包括换行
    之外的任意字符
     6 res=re.search('.+','1231
    aHG
    hvVrsd',flags=re.S)
     7 print(res.group())
     8 
     9 #'$' 结尾
    10 
    11 #'+' 匹配'+'号前一个字符一次或多次
    12 res=re.search('#.+#','121#asdasd#')
    13 print(res)
    14 
    15 res=re.search('r[a-z]+a','chenronghuaronghua123ronghua567')
    16 print(res)
    17 
    18 #‘?’ 匹配'?'号前一个字符一次或0次
    19 res=re.search('t?','taojames')
    20 print(res)
    21 res=re.search('t?','ttaojames')
    22 print(res)
    23 res=re.search('tt?','ttaojames')#整体匹配,匹配t或tt
    24 print(res)
    25 
    26 #{m} 匹配'{m}'号前m次
    27 res=re.search('[0-9]{3}','tao123ja23m123es')
    28 print(res)
    29 res=re.findall('[0-9]{1,3}','tao123ja23m123es')#找出所有符合的匹配,以数列方式返回,没有group方法
    30 print(res)
    31 
    32 #‘|’ 匹配‘|’号两端,或
    33 res=re.search('tao|Tao','tao123ja23m123es')
    34 print(res)
    35 
    36 #‘(...)’ 分组匹配
    37 res=re.search('tao{2}','taooo123ja23m123es')
    38 print(res)
    39 res=re.search('(tao){2}','taotao123ja23m123es')#把tao分成一组
    40 print(res)
    41 res=re.search('(tao){2}(||=){3}','taotao||=||=||=123ja23m123es')
    42 print(res)
    43 
    44 #'A' 匹配以'A'号后字符开头
    45 #'' 匹配以''号前字符结尾
    46 res=re.search('A[0-9]+[a-z]','1231a')#
    47 print(res)
    48 
    49 #‘d’ 匹配数字
    50 #‘D’ 匹配非数字的所有字符
    51 res=re.search('d+','1231aasd')#
    52 print(res)
    53 res=re.search('D+','1231s|aassd')#
    54 print(res)
    55 
    56 #‘w’ 匹配[A-Za-z0-9]
    57 #‘W’ 匹配非[A-Za-z0-9]的所有字符
    58 res=re.search('w+','1231||asd')#
    59 print(res)
    60 res=re.search('W+','1231||asd')#
    61 print(res)
    62 
    63 #‘s’ 匹配空白字符、	、
    、
    
    64 res=re.search('s+','12 31||a
    sd')#
    65 print(res)
    66 
    67 #(?P<name>...) 分组匹配
    68 res=re.search('(?P<id>[0-9]+)','1231taosd')
    69 print(res)
    70 print(res.groupdict())#将匹配结果字典输出
    71 res=re.search('(?P<id>[0-9]+)(?P<name>[a-z]+)','1231taosd')#一起匹配
    72 print(res)
    73 print(res.groupdict())
    74 
    75 #匹配反斜杠
    76 res=re.search(r'\','12 31||a\rsd')
    77 print(res)
    78 
    79 #匹配忽略大小写
    80 res=re.search('[a-z]+','1231aHGhvVrsd',flags=re.I)
    81 print(res)

    结果:

    匹配身份证信息:

    1 #将身份证号分组
    2 
    3 res=re.search('(?P<province>[0-9]{2})(?P<city>[0-9]{2})(?P<county>[0-9]{2})(?P<birth>[0-9]{8})(?P<id>[0-9]{4})','211421199912221234')#一起匹配,
    4 
    5 print(res.groupdict())

    结果:

  • 相关阅读:
    java json 库之 jackson
    java 多线程
    golang slice 和 string 重用
    golang 字节对齐
    golang 并发编程之生产者消费者
    golang 设计模式之选项模式
    golang aws-sdk-go 之 s3 服务
    markdown 一个优雅的写作工具
    常见句型、用法
    hg
  • 原文地址:https://www.cnblogs.com/BIT-taozhen/p/9932181.html
Copyright © 2011-2022 走看看