我需要这样做:
text = re.sub(r'\]\n', r']', text)
但find
和replace
为变量:
find = '\]\n'
replace = ']'
text = re.sub(find, replace, text)
我应该在哪里放r
(原始)?它不是一个字符串。
答案 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)