我需要清理文本,其中包含\'
要删除反斜杠同时保留单引号的序列。我试图将反斜杠放在反斜杠和引号之前,但无济于事。有什么建议吗?
码:
import re
samplestr="q\\\'q"
print(samplestr)
samplestr=re.sub("\\\'" , "\'",samplestr)
print(samplestr)
输出:
q\'q
q\'q
这有点令人困惑,因为您正在使用正则表达式。如果您使用normal 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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句