如何在 Python 中将 \' 替换为 '?

How to replace \' with ' in 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 时,第一个参数被视为 正则表达式模式 ,而不是字符串。所以它最终搜索 正则表达式模式 \' 的匹配项,这只是一个转义的撇号。要在正则表达式中包含文字反斜杠,您需要使用 \.

为了更好的可读性,您应该以 r 开头来使用 Python raw string。然后您可以执行以下操作:

samplestr = re.sub(r"\'", "'", samplestr)
print(samplestr) # q'q

您不需要 regex 模块。

samplestr = "q\\'q"
samplestr.replace("\'", "'")

会完成任务的。 s.replace(a,b) 函数将在字符串 s 中用 b 替换任何出现的 character/string a,即

a = 'asdfgghhfdaaaaaqwwweaaa'
a.replace('a','1')

输出:

'1sdfgghhfd11111qwwwe111'

\的情况下,你需要使用\,因为它是一个转义字符。