【发布时间】:2015-04-28 17:12:51
【问题描述】:
我想在单词"O'Fallon" 中将"'" 替换为"\'"。
但是当我使用以下代码时:
City="O'Fallon"
City.replace("'","\'")
我得到"O'Fallon" 作为输出,当使用此代码时:
City="O'Fallon"
City.replace("'","\\'")
我得到"O\\'Fallon" 作为输出。你能帮我解决这个问题吗?
【问题讨论】:
-
双斜线是正常行为。试试
print City.replace("'", "\\'")。 -
我认为您正在寻找类似 @987654329@ 或
pipes.quote(City)(或 Python >= 3.3 上的shlex.quote())之类的东西,具体取决于您想要为什么环境转义字符串。跨度> -
@MartijnPieters 显然,这就是 OP 认为他们的第二次尝试不起作用的原因。但我的观点是:如果他们需要转义单引号,他们可能需要转义将由特定解析器解释的字符串。也许是 Python,也许是一个 shell,谁知道呢。所以嘿应该使用一个函数来正确转义目标环境中具有特殊含义的每个字符,而不仅仅是替换单引号。
-
@LukasGraf:对,我明白你的意思。我在下面发表了类似的评论,感觉到他们在某处的 SQL 查询中使用了它。此时您会要求数据库驱动程序进行转义..