对正则表达式中的反斜杠感到困惑
我对正则表达式中的反斜杠感到困惑。在正则表达式中,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'>
。
有人有解释吗?
largeQ
凤凰求蛊