我正在尝试转义这样的字符串:
string = re.split(")(", other_string)
因为不转义那些括号给我一个错误。但是,如果我这样做:
string = re.split("\)\(", other_string)
我从PEP8得到警告,它是无效的转义序列。有没有办法正确地做到这一点?
在字符串前面加上'r'并不能解决问题。
您可能正在寻找this,这意味着您的字符串将被写为string = r")("
,而该字符串将被转义。虽然那是从2008年开始,但在python 2中已被淘汰。 r
的作用是使其成为“原始字符串”
也参见:How to fix "<string> DeprecationWarning: invalid escape sequence" in Python?。
您正在处理的是字符串文字,可以在PEP 8 Style Guide中看到
更新有问题的编辑:
[如果您尝试拆分“)(”,那么这是一个不会抛出PEP8警告的有效示例:
import re
string = r"Hello my darling)(!"
print(string)
string = re.split(r'\)\(', string)
print(string)
哪个输出:
Hello )(world!
['Hello ', 'world!']
或者您可以通过使用两个反斜杠来显式转义反斜杠:
import re
string = r"Hello )(world!"
print(string)
string = re.split('\\)\\(', string)
print(string)
输出相同的内容:
Hello )(world!
['Hello ', 'world!']