python - 如何在Python中用'替换\'?
问题描述
我需要清理文本,其中包含\'
我想在保留单引号的同时删除反斜杠的序列。我试图在反斜杠和引号之前放置反斜杠,但无济于事。对我有什么建议吗?
代码:
import re
samplestr="q\\\'q"
print(samplestr)
samplestr=re.sub("\\\'" , "\'",samplestr)
print(samplestr)
输出:
q\'q
q\'q
解决方案
这有点令人困惑,因为您使用的是正则表达式。如果您使用常规replace
,您的代码将按原样工作:
samplestr = "q\\\'q"
print(samplestr) # q\'q
samplestr = samplestr.replace("\\\'", "\'") # escape actually unnecessary for single quote
print(samplestr) # q'q
但是,当您使用 时re.sub
,第一个参数被视为正则表达式模式,而不是字符串。所以它最终会搜索正则表达式模式 \'
的匹配,这只是一个转义的撇号。要在正则表达式中包含文字反斜杠,您需要使用\\
.
为了更好的可读性,您应该使用以 .开头的Python 原始字符串r
。然后您可以执行以下操作:
samplestr = re.sub(r"\\'", "'", samplestr)
print(samplestr) # q'q
推荐阅读
- prolog - 格式化最小路径
- c++ - Windows 语言环境从十进制转换为字符串
- delphi - 如何修复此服务器查询以获取 samp?
- visual-studio - 云基础设施中的opengl教程
- android - 上传图片和 Firebase 显示“用户无权访问此对象”,即使存储设置是公开的
- reactjs - 无法使用 Apollo-link-rest 和 ReactJS 从数组中渲染嵌套对象
- ios - 使用 NotificationCenter 和 Observer 在 UIViewControllers 之间发送布尔值
- ansible - 如何为同一变量的多个服务器提供不同的值
- reactjs - 是否可以添加道具类型以根据另一个道具的存在或价值来反应组件道具?
- r - 如何创建 R 方法