根据Python文档,原始字符串表示法(r“ text”)使正则表达式有意义且无混淆。如果没有它,则正则表达式中的每个反斜杠('\')都必须加上另一个前缀才能转义。例如,以下两行代码在功能上相同-
>>> re.match(r"\W(.)\1\W", " ff ") <_sre.SRE_Match object; span=(0, 4), match=' ff '> >>> re.match("\\W(.)\\1\\W", " ff ") <_sre.SRE_Match object; span=(0, 4), match=' ff '>
当要匹配文字反斜杠时,必须在正则表达式中将其转义。使用原始字符串表示法,则表示r“ \\”。如果没有原始字符串表示法,则必须使用“ \\\\”,从而使以下代码行在功能上相同-
>>> re.match(r"\\", r"\\") <_sre.SRE_Match object; span=(0, 1), match='\\'> >>> re.match("\\\\", r"\\") <_sre.SRE_Match object; span=(0, 1), match='\\'>