在re.sub。中使用带有变量的“r”

时间:2012-11-26 13:41:25

标签: python regex

我需要这样做:

text = re.sub(r'\]\n', r']', text)

findreplace为变量:

find = '\]\n'
replace = ']'
text = re.sub(find, replace, text)

我应该在哪里放r(原始)?它不是一个字符串。

3 个答案:

答案 0 :(得分:3)

r''string literal syntax的一部分:

find = r'\]\n'
replace = r']'
text = re.sub(find, replace, text)

语法绝不是re模块特有的。但是,指定正则表达式是原始字符串的主要用例之一。

答案 1 :(得分:2)

简短回答:你应该将r与字符串保持在一起。

r前缀是字符串语法的一部分。对于r,Python不会在引号内解释反斜杠序列,例如\n\t等。如果没有r,则必须输入两次反斜杠才能将其传递给re.sub

r'\]\n'

'\\]\\n'

是两种编写相同字符串的方法。

答案 2 :(得分:1)

保持r'...'

find = r'\]\n'
replace = r']'
text = re.sub(find, replace, text)

或与

一起使用
find = '\\]\\n'
replace = ']'
text = re.sub(find, replace, text)
相关问题