3

通常你会r在字符串前面放一个以使其原始,但是如何使用变量(字符串)来做到这一点?

这是我到目前为止所尝试的:

import re
var = "++"
re.search(r"++", "++")      # also does not work
re.search(var, "++")        # fails
re.search(r(var), "++")     # fails
re.search(r + var, "++")    # fails
re.search("r" + var, "++")  # fails
4

2 回答 2

3

为此使用该re.escape()功能。

>>> import re
>>> var = "++"
>>> re.search(re.escape(var), '++')
<_sre.SRE_Match object at 0x02B36B80>
于 2013-09-15T13:45:55.797 回答
2

这没有意义,因为r指示解释器如何解释您放入源代码文件中的字符串。在您的示例中,您将拥有var = r"++",然后您可以使用var. 它不会修改字符串内容,它只是一种表达你想在字符串中放入什么的方式。所以var = "\\n"相当于var = r"\n"-var变量将包含完全相同的字节,从那时起,您不能使用任何修饰符更改它们。这些修饰符只有在解析源代码文件阶段才存在并且有任何影响——当程序运行时,在编译的字节码中没有它们的踪迹。

于 2013-09-15T13:07:51.450 回答