zoukankan      html  css  js  c++  java
  • re模块

    正则表达式模块
    常用的正则表达式符号:
      . 默认匹配除 以外的任意一个字符,如果制定falg,DOTALL,则匹配任意字符,包括换行
      '^' 匹配字符串的开头
      '$' 匹配字符串的结尾
      '*' 匹配*号前的字符0次或者多次
      '+' 匹配前一个字符1次或多次
      '?' 匹配前一个字符1次或0次
      ‘{n}’ 匹配一个字符n次
      '{n,m}' 匹配前一个字符n到m次
      ‘|’ 匹配左边或右边的字符串
      ‘()’ 分组匹配
     
      ‘A’ 只从字符串开头匹配
      '' 匹配字符串的结尾,和$相同
      'd' 只匹配数字0-9
      'D' 匹配非数字
      'w' 匹配字符数字[a-zA-Z0-9]
      'W' 匹配非字符数字
      ‘s’ 匹配空白符、 等
     
      ‘(?P<name>regx)’ 分组匹配,并且把匹配到的字符串和name进行关联,通过groupdict()进行输出
     
    简单用法:
      res = re.match('regx','str') -->利用regx对str进行从头开始匹配(注意,match默认就是从头开始匹配)
      res.group() -->列出匹配到的字符串
     
      res = re.search('regx','str') -->对字符串进行搜索,可以从任意位置开始,匹配到1个,就返回
      res = re.findall('d','1a2b3c4d') -->查找所有匹配到的字符串,并用list进行存储
     
    #分组命名匹配
      >>> import re
      >>> res3 = re.search('(?P<id>d)','abc1d2e3f')
      >>> print(res3.groupdict())
      {'id': '1'}
      >>>
     
    #利用正则对字符串进行分割,然后返回list
      >>> re.split('d+','a1a2b3c4d')
      ['a', 'a', 'b', 'c', 'd']
     
     
    #替换
      >>> re.sub('d','|','a1b2c3d4')
      'a|b|c|d|'
     
     
    其他匹配模式:
      1、忽略大小写: re.I
      2、多行模式: re.M
      3、点任意匹配模式:re.S,既加上re.S 点就可以匹配任意字符 包括换行符
     
     
     
  • 相关阅读:
    树莓派frp添加为服务管理
    liunx开源打印驱动foo2zjs编译小坑
    树莓派中实现ll命令
    Windows中使用QEMU创建树莓派虚拟机
    C#打印条码BarTender SDK打印之路和离开之路(web平凡之路)(转)
    数据库连接池问题 Max Pool Size
    C#时间
    XAF 如何从Excel复制多个单元格内容到GridView(收藏)
    C#日期处理(转) 太忘记了,备忘
    C#、devExpress 的 给bandedGrid加菜单功能 :复制、粘贴的例子(转)
  • 原文地址:https://www.cnblogs.com/dachenzi/p/6666550.html
Copyright © 2011-2022 走看看