我知道字符串前面的r会使该字符串中的任何转义字符都被认为是字符串。但是我有以下代码行(来自我用来学习Python的书),其中first \被用来将first()视为字符串。但是如果你把r放在整个字符串的前面,它不会让第一个\也被认为是一个字符串吗?如果是这样的话,为什么要使用转义符来转义first(),如果第一个\本身会被r转义呢?代码行:
phoneNumRegex = re.compile(r'(\(\d\d\d\)) (\d\d\d-\d\d\d\d)')
mf98qq941#
这与原始字符串(r前缀)无关。正则表达式中的\(用于正则表达式引擎,意思是“搜索文字(,不要创建捕获组”。
r
\(
(
import re string = '(literal parens)' print(re.search('(literal parens)', string).group())
其输出
literal parens
相比
print(re.search('\(literal parens\)', string).group())
匹配文字(和)
)
(literal parens)
1条答案
按热度按时间mf98qq941#
这与原始字符串(
r
前缀)无关。正则表达式中的\(
用于正则表达式引擎,意思是“搜索文字(
,不要创建捕获组”。其输出
相比
匹配文字
(
和)