San*_*996 1 python regex escaping
一个菜鸟问题.我正在阅读有关在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'
Run Code Online (Sandbox Code Playgroud)
显然,笔者逃脱"("与"\".我想知道怎么样.我觉得把一个"R"在带来像对待"\"没有区别.
是的,此代码转义'('用于定义正则表达式,但Python解释器保留字符串中的'\'.
如果不使用原始字符串文字形式定义它,您将不得不写:
phoneNumRegex = re.compile('(\\(\\d\\d\\d\\)) (\\d\\d\\d-\\d\\d\\d\\d)')
Run Code Online (Sandbox Code Playgroud)