如何替换\';与';用Python?

如何替换\';与';用Python?,python,python-3.x,text-processing,re,Python,Python 3.x,Text Processing,Re,我需要清理文本,其中包含\' 我想删除反斜杠,同时保留单引号。我试着把反斜杠放在反斜杠和引号之前,但没有用。有什么建议吗 代码: 重新导入 samplestr=“q\\\'q” 打印(示例TR) samplestr=re.sub(“\\\'”,“\'”,samplestr) 打印(示例TR) 输出: q\q q \'q 这有点令人困惑,因为您使用的是正则表达式。如果使用常规的替换,则代码的工作方式如下: samplestr = "q\\\'q" print(samplest

我需要清理文本,其中包含
\'
我想删除反斜杠,同时保留单引号。我试着把反斜杠放在反斜杠和引号之前,但没有用。有什么建议吗

代码:

重新导入
samplestr=“q\\\'q”
打印(示例TR)
samplestr=re.sub(“\\\'”,“\'”,samplestr)
打印(示例TR)
输出:

q\q
q \'q

这有点令人困惑,因为您使用的是正则表达式。如果使用常规的
替换
,则代码的工作方式如下:

samplestr = "q\\\'q"
print(samplestr) # q\'q
samplestr = samplestr.replace("\\\'", "\'") # escape actually unnecessary for single quote
print(samplestr) # q'q
但是,当您使用
re.sub
时,第一个参数被视为正则表达式模式,而不是字符串。因此,它最终搜索正则表达式模式
\'
的匹配项,这只是一个转义撇号。要在正则表达式中包含文字反斜杠,需要使用
\\

为了获得更好的可读性,您应该从
r
开始使用。然后您可以执行以下操作:

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

这有点混乱,因为您使用的是正则表达式。如果使用常规的
替换
,则代码的工作方式如下:

samplestr = "q\\\'q"
print(samplestr) # q\'q
samplestr = samplestr.replace("\\\'", "\'") # escape actually unnecessary for single quote
print(samplestr) # q'q
但是,当您使用
re.sub
时,第一个参数被视为正则表达式模式,而不是字符串。因此,它最终搜索正则表达式模式
\'
的匹配项,这只是一个转义撇号。要在正则表达式中包含文字反斜杠,需要使用
\\

为了获得更好的可读性,您应该从
r
开始使用。然后您可以执行以下操作:

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

对此,您不需要
regex
模块

samplestr = "q\\\'q"
samplestr.replace("\'", "'")
我会做好的。
s.replace(a,b)
函数将字符串
s
中出现的
字符
/
字符串
a
替换为
b

a = 'asdfgghhfdaaaaaqwwweaaa'
a.replace('a','1')
输出:

'1SDFGHHFD11111QWWWE111'


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

您不需要
regex
模块

samplestr = "q\\\'q"
samplestr.replace("\'", "'")
我会做好的。
s.replace(a,b)
函数将字符串
s
中出现的
字符
/
字符串
a
替换为
b

a = 'asdfgghhfdaaaaaqwwweaaa'
a.replace('a','1')
输出:

'1SDFGHHFD11111QWWWE111'


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

“\\'”
->
“\\'”
r“\'”
。第二种形式称为“原始字符串文字”。此外,您不需要对引号使用反斜杠:
“\'”
->
“\\\'”
“\\'”
->
“\\\'”
r“\\”
。第二种形式称为“原始字符串文字”。另外,您不需要对引号使用反斜杠:
“\'”
->
“”
。次要技术细节:附加的\不是必需的,因为\是转义字符,而是因为\是转义序列。(例如,您还应该转义引号,它不是转义字符,但您不必转义\y,它不是转义序列。)注意:在我之前的注释中,我想将反斜杠格式化为代码,但显然它有自己的转义规则,现在我真的很困惑;-)次要技术细节:附加的\不是必需的,因为\是转义字符,而是因为\是转义序列。(例如,您还应该转义引号,它不是转义字符,但您不必转义\y,它不是转义序列。)注意:在我之前的注释中,我想将反斜杠格式化为代码,但显然它有自己的转义规则,现在我真的很困惑;-)