用\'或\“替换evey单/双qoutes

时间:2019-02-25 09:23:54

标签: python sql string

我大约有6000条记录,我想读取它们并INSERT到新表中。它们包含单引号和双引号,并且MySQL无法接受我的查询,因为当阻止我的{{1 }}(单引号)已关闭并生成语法错误:

'

当我打印查询时,得到以下sql查询:

sql = "INSERT INTO tr_en_ahmadali(id,sura,aya,aya_text) VALUES({0},{1},{2},'{3}');".format(str(index), str(j[index - 1]) ,str(aya_), str(k[single_aya - 1]))
print(sql)

我的问题是: 如何使用python将\'或\“替换为单引号和双引号?

1 个答案:

答案 0 :(得分:1)

您可以使用后面带有负数的简单正则表达式:

(?<!\\)(["'])

这需要替换为

\\\1

请参见a demo on regex101.com


Python中的整个内容:

import re

string = """This ain't funny, you know.
But this escaped one (\") won't change."""

rx = re.compile(r'''(?<!\\)(["'])''')

string = rx.sub(r'\\\1', string)
print(string)

请参见another demo on ideone.com