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

    简单的范围的字符组:
      0-9 匹配所有的数字
      a-z 匹配所有的小写字母
      A-Z 匹配所有的大写字母
      A-Za-z 匹配所有的字母

       字符:      

      .         匹配换行符之外的任意字符
      \w  word    匹配数字,字母,下划线
      \s  space   匹配所有的空格符     
      \d  digit   匹配数字

      \W  word    匹配非数字,字母,下划线
      \S space 匹配所有的非空格符
      \D digit 匹配非数字

      \n  newline 匹配换行符
      \t tab 匹配制表符

    
    
      ^   startwith   匹配字符串的开始,位置永远在最前
      $ endswith 匹配字符串的结尾,位置永远在最后  
      ^ $        两个一起用可以约束中间的所有字符,但是要求全部完全匹配  
      | 或      从左向右,匹配上了就不匹配了,因此长的放在前面  
      ab|abc       先匹配ab,后面有abc也不会被选中
     量词:量词放在后面只约束前面一个的要求
      *         重复零次或更多次
      +         重复一次或更多次,重复一次得到的结果就是单字符。
      ?         重复零次或一次
                  ? 如果放在量词后面表示非贪婪匹配,匹配最少(惰性匹配)
                  默认是贪婪匹配,匹配到最多
                  表示惰性匹配的时候会缓存后面一位表示结尾的指令。比如.*?x 表示取到x前面一个字符
                  放在分组前面,取消分组优先
      {n}       重复n次
      {n,}      重复n次或更多次
      {n,m} 重复n到m次
    字符集:
      []         匹配字符组中的字符
      [^]        匹配除了字符组中字符的所有字符
    分组:
      ()    对整体的式子进行量词约束
          在split的时候分组会保留被分割的字符
          在findall的时候,会优先匹配分组内的内容
              若不想优先,可以使用(?:)取消分组优先级
    转义字符:
      \       python里面的转义字符用 r''
    flags:
      re.I(IGNORECASE)忽略大小写,括号内是完整的写法
      re.M(MULTILINE)多行模式,改变
    ^和$的行为
      re.S(DOTALL)点可以匹配任意字符,包括换行符
      re.L(LOCALE)做本地化识别的匹配,表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境,不推荐使用
      re.U(UNICODE) 使用\w \W \s \S \d \D使用取决于unicode定义的字符属性。在python3中默认使用该flag
      re.X(VERBOSE)冗长模式,该模式下pattern字符串可以是多行的,忽略空白字符,并可以添加注释
  • 相关阅读:
    Oracle常用系统查询SQL
    easyui中使用的遮罩层
    EasyUI相同的Tab只打开一个(即EasyUI方法的调用方法)
    jQueryEasyUI创建菜单主页
    linux 的环境变量的配置文件
    angular reactive form
    svn代码回滚
    golang restful api
    golang embedded structs
    Angular Multiple HTTP Requests with RxJS
  • 原文地址:https://www.cnblogs.com/purewhite/p/10593174.html
Copyright © 2011-2022 走看看