regex 在字符串前面加上正则表达式

lztngnrs  于 2023-06-30  发布在  其他
关注(0)|答案(1)|浏览(106)

我知道字符串前面的r会使该字符串中的任何转义字符都被认为是字符串。但是我有以下代码行(来自我用来学习Python的书),其中first \被用来将first()视为字符串。
但是如果你把r放在整个字符串的前面,它不会让第一个\也被认为是一个字符串吗?如果是这样的话,为什么要使用转义符来转义first(),如果第一个\本身会被r转义呢?
代码行:

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

mf98qq941#

这与原始字符串(r前缀)无关。正则表达式中的\(用于正则表达式引擎,意思是“搜索文字(,不要创建捕获组”。

import re

string = '(literal parens)'
print(re.search('(literal parens)', string).group())

其输出

literal parens

相比

print(re.search('\(literal parens\)', string).group())

匹配文字()

(literal parens)

相关问题