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

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

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

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

    匹配换行符
    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, s, S 依赖于当前环境,不推荐使用
    re.U(UNICODE) 使用w W s S d D使用取决于unicode定义的字符属性。在python3中默认使用该flag
    re.X(VERBOSE)冗长模式,该模式下pattern字符串可以是多行的,忽略空白字符,并可以添加注释
  • 相关阅读:
    关于时间的字词
    Postgresql 存储过程调试 1
    Delphi 调试日子
    Delphi 调试日子
    TList,TObjectList 使用——资源释放
    Lazarus开发环境编译选项配置
    Delphi 递归搜索.SVN文件夹并“处理”
    Delphi 路径相关函数
    如何掌握程序语言(王垠)
    struct/class等内存字节对齐问题详解
  • 原文地址:https://www.cnblogs.com/shijieli/p/9714310.html
Copyright © 2011-2022 走看看