fiz*_*x00 -1 python regex syntax
这是我正在编写的Python东西中的一行正则表达式:
m = re.match(r"{(.+)}", self.label)
Run Code Online (Sandbox Code Playgroud)
据我所知,它工作正常。
无论如何,我的问题是关于第一个双引号之前的r字符。我从来没有真正质疑过它。但是为什么在那里呢?目的是什么?
在r之前的字符串字面告诉Python中没有做任何\的字符串逃脱。例如:
>>> print('a\nb')
a
b
>>> print(r'a\nb')
a\nb
>>>
Run Code Online (Sandbox Code Playgroud)
r前缀字符串经常与正则表达式一起使用的原因是,正则表达式经常使用很多\。例如,举一个简单的例子,比较正则表达式'\\d+'和r'\d+'。它们实际上是相同的字符串,只是以不同的方式表示。使用r语法,您不必转义\正则表达式语法中使用的。现在想象一下,\您的正则表达式中有很多;使用r语法要干净得多。