我对正则表达式中的反斜杠感到困惑.在正则表达式中,a \具有特殊含义,例如,\d表示十进制数字.如果在反斜杠前添加反斜杠,则此特殊含义会丢失.在正则表达式中,人们可以阅读:
也许最重要的元字符是反斜杠,
\.与Python字符串文字一样,反斜杠后面可以跟各种字符,以指示各种特殊序列.它也用于转义所有元字符,因此您仍然可以在模式中匹配它们; 例如,如果你需要匹配一个[或者\,你可以在它们前面加一个反斜杠来删除它们的特殊含义:\[或者\\.
所以print(re.search('\d', '\d'))给出None因为\d匹配任何十进制数字,但没有\d.
我现在期望print(re.search('\\d', '\d'))匹配,\d但答案仍然是None.
仅print(re.search('\\\d', '\d'))给出输出<_sre.SRE_Match object; span=(0, 2), match='\\d'>.
有人有解释吗?