通常你会在字符串前放一个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
答案 0 :(得分:1)
使用re.escape()
功能。
>>> import re
>>> var = "++"
>>> re.search(re.escape(var), '++')
<_sre.SRE_Match object at 0x02B36B80>
答案 1 :(得分:0)
这没有意义,因为r
指示解释器如何解释放在源代码文件中的字符串。在您的示例中,您将拥有var = r"++"
,然后您可以使用var
。它不会修改字符串内容,它只是一种说明你想要放入字符串的方式。因此var = "\\n"
相当于var = r"\n"
- var
变量将包含完全相同的字节,从那时起,您无法使用任何修饰符更改它们。这些修饰符仅在解析源代码文件阶段时存在并且具有任何作用 - 当程序运行时,在编译的字节代码中没有它们的痕迹。