Skip to main content
 首页 » 编程设计

python原始字符串转义字符

2025年05月04日19lautakyan007

一个菜鸟问题。我正在阅读有关在 python 中使用正则表达式的文档。我的印象是使用原始字符串会按原样处理 '\' 而不会将其后的任何内容视为转义序列。然而,在我正在阅读的示例中,

>>> phoneNumRegex = re.compile(r'(\(\d\d\d\)) (\d\d\d-\d\d\d\d)') 
>>> mo = phoneNumRegex.search('My phone number is (415) 555-4242.') 
>>> mo.group(1) 
'(415)' 
>>> mo.group(2) 
'555-4242' 

很明显,作者用 '\' 转义了 '(' 。我想知道是如何转义的。我认为在带前加上 'r' 对 '\' 没有什么不同。

请您参考如下方法:

是的,为了定义正则表达式,此代码转义了“(”,但 Python 解释器保留了字符串中的“\”。

如果不使用原始字符串文字形式定义它,您将不得不编写:

phoneNumRegex = re.compile('(\\(\\d\\d\\d\\)) (\\d\\d\\d-\\d\\d\\d\\d)')