4

我需要这样做:

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

但是使用findandreplace作为变量:

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

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

4

3 回答 3

6

r''字符串文字语法的一部分:

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

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

于 2012-11-26T13:42:42.163 回答
4

简短的回答:你应该把它r和字符串放在一起。

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

r'\]\n'

'\\]\\n'

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

于 2012-11-26T13:46:53.683 回答
2

保持r'...'

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

或与

find = '\\]\\n'
replace = ']'
text = re.sub(find, replace, text)
于 2012-11-26T13:43:40.560 回答