在几乎所有的编程语言中 \ 都被作为转义字符, \<某个字母> 在正则表达式也表达了某种预定义字符集
    或边界,这导致我们需要匹配 \ 时我们需要写4个反斜杠。
    在程序使用过程中,从输入的字符串到正则表达式,其实有两步转换过程,分别是字符串转义和正则转
    义。:
    image.png
    例如,对于字符串 “F:\video” ,我们需要提取左边的盘符和右边的路径时,需要这样写:

    1. s = "F:\\video"
    2. re_match = re.match('(.+?)\\\\(.+)', s)
    3. re_match.group(1), re_match.group(2)

    但由于Python支持原生字符串,我们就可以这样写:

    1. s = r"F:\video"
    2. re_match = re.match(r'(.+?)\\(.+)', s)
    3. re_match.group(1), re_match.group(2)

    结果均为:

    1. ('F:', 'video')

    有了原生字符串,写出来的表达式会更加直观。
    括号的转义:
    在正则中方括号 [] 和 花括号 {} 只需转义开括号,但圆括号 () 两个都要转义。我在下面给了你一个比较
    详细的例子。

    1. >>> import re
    2. >>> re.findall('\(\)\[]\{}', '()[]{}')
    3. ['()[]{}']
    4. >>> re.findall('\(\)\[\]\{\}', '()[]{}') # 方括号和花括号都转义也可以
    5. ['()[]{}']

    使用函数消除元字符特殊含义:
    re模块自带的转义函数escape也可以实现转义:

    1. >>> import re
    2. >>> re.escape('\d') # 反斜杠和字母d转义
    3. '\\\\d'
    4. >>> re.findall(re.escape('\d'), '\d')
    5. ['\\d']
    6. >>> re.escape('[+]') # 中括号和加号
    7. '\\[\\+\\]'
    8. >>> re.findall(re.escape('[+]'), '[+]')
    9. ['[+]']