python - 获取 PEP8 "invalid escape sequence"警告试图在正则表达式中转义括号

标签 python regex pep8 re

我试图转义这样的字符串:

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!']

关于python - 获取 PEP8 "invalid escape sequence"警告试图在正则表达式中转义括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61497292/

相关文章:

java - 如何在java中不解析xml获取特定值

Python 主方法位置约定

python - 从函数调用常量时,(PEP8)换行的正确方法是什么?

python - 在 Python 中有效确定幂集成员之间的子集

c++11 正则表达式提取文本

python - 如何使用终端逐行比较2个文件

python - 仅在与其他匹配组不同时才匹配组

python - len() 的成本和 pep8 关于序列空检查的建议

python - tensorflow 2 keras shuffle每一行梯度问题

python - 如何在scapy中欺骗TCP握手?