python - 如何转义字符串中的特殊字符(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 有哪些可用的替代方案?或者除了显式添加\
.
解决方案
re.escape
旨在转义在正则表达式中具有特殊含义的字符。当您想逐字匹配字符串时使用它。如果那是您的用例,则无需更改任何内容。从python 3.7开始,只有在正则表达式中具有特殊含义的字符才会被转义。
如果您出于其他原因要转义字符,re.escape
则不是正确的解决方案。什么是正确的解决方案取决于你为什么要逃避什么。
推荐阅读
- c# - 为什么这种方法从字面上删除书签范围?C#
- c++ - 我无法让 VSCode 在 c/c++ 文件的面包屑/大纲中显示函数名称
- arrays - 数组类型“char [30]”不可分配
- excel - 检查列是否有已经插入的输入字符串
- vlc - 如果在线广播流停止在 VLC 上播放,则播放本地 mp3 音乐
- python - 我正在尝试使用带有 python 的 Youtube API 上传 youtube 视频
- java - 任务的gradle缓存问题
- android - 如何找出 Chrome Dev Tools 的自定义设备屏幕尺寸?
- hover - Adobe XD。默认状态与悬停状态。两者的不透明度相同
- excel - 在 Excel 中将日期(年龄)转换为数字