首页 > 解决方案 > 如何转义字符串中的特殊字符(Python 3.7)

问题描述

我在我们的项目(python3.6)中使用了 re.escape,当我们将 Python 版本升级到 3.7 时,我们遇到了关于字符串中特殊字符的问题。例如,以下代码在 Python 3.6 和 3.7 中的工作方式不同。请提出一些替代方案。

import re

re.escape("hey:there")

Python 3.6 输出

"hey\\:there"

Python 3.7 输出

"hey:there"

re.escape 有哪些可用的替代方案?或者除了显式添加\.

标签: pythonregexpython-3.6python-3.7

解决方案


re.escape旨在转义在正则表达式中具有特殊含义的字符。当您想逐字匹配字符串时使用它。如果那是您的用例,则无需更改任何内容。从python 3.7开始,只有在正则表达式中具有特殊含义的字符才会被转义。

如果您出于其他原因要转义字符,re.escape则不是正确的解决方案。什么是正确的解决方案取决于你为什么要逃避什么。


推荐阅读