(1)单字符匹配
    \d    0-9 所有的数字字符          [0-9]
    \D    除了 \d
    \w    数字-字母-下划线  一个中文  [a-zA-Z0-9_]
    \W    除了 \w
    \s    所有的空白字符  \t 空格
    \S    除了 \s
    .     除了 \n 以外任意字符
    [aeiou] 匹配这里面任意一个
(2)数量修饰
    {n}   修饰前面的一个字符出现多少次
    {n,m} 至少n次,最多m次   贪婪匹配,能多匹配就多匹配
    {n,}  最少n次
    {0,}  任意多次   *
    {1,}  至少1次    +
    {0,1} 可有可无   ?
(3)边界相关
    ^     以某某开头
    $     以某某结尾
(4)贪婪和非贪婪
    .*
    .*?   取消贪婪
    .+
    .+?   取消贪婪
    import re
    compile   生成一个正则对象
    search    从任意位置开始匹配,匹配成功立即结束,返回对象
    match     从开头开始匹配,匹配成功立即结束,返回对象
    ret.group()   ret.span()
    findall   匹配所有符合要求的字符串,返回列表,列表里面都是匹配的内容
(5)子模式
    在正则里面出现 ()
    1、看作一个整体
        (ab){3}
    2、一个子模式
        \1  第一个小括号匹配的内容
        \2  第二个小括号匹配的内容
(6)正则替换
    sub
(7)修饰符
    re.I   忽略大小写
    re.S   视为单行模式
    re.M   多行匹配
原文:https://www.cnblogs.com/helloqaz/p/9872304.html