正在获取PEP8“无效的转义序列”警告,试图转义正则表达式中的括号

问题描述 投票:0回答:1

我正在尝试转义这样的字符串:

string = re.split(")(", other_string)

因为不转义那些括号给我一个错误。但是,如果我这样做:

string = re.split("\)\(", other_string)

我从PEP8得到警告,它是无效的转义序列。有没有办法正确地做到这一点?

在字符串前面加上'r'并不能解决问题。

python regex pep8 re
1个回答
2
投票

您可能正在寻找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!']
© www.soinside.com 2019 - 2024. All rights reserved.