正则表达式python附加原始字符串变量

时间:2013-09-15 12:44:44

标签: python regex

通常你会在字符串前放一个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

2 个答案:

答案 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变量将包含完全相同的字节,从那时起,您无法使用任何修饰符更改它们。这些修饰符仅在解析源代码文件阶段时存在并且具有任何作用 - 当程序运行时,在编译的字节代码中没有它们的痕迹。