用Python中的转义双引号替换转义的单引号

时间:2012-11-16 02:34:31

标签: python regex double-quotes substitution

我正在尝试用双引号替换所有单引号,但留下所有转义的单引号。有没有人知道用python正则表达式做这个的简单方法?

Input:
"{ 'name': 'Skrillex', 'Genre':'Dubstep', 'Bass': 'Heavy', 'thoughts': 'this\'s ahmazing'}"

output:
"{ "name": "Skrillex", "Genre": "Dubstep", "Bass": "Heavy", "thoughts": "this\'s ahmazing"}"

2 个答案:

答案 0 :(得分:1)

这有点奇怪,但可能有用。请记住在r前面添加字符串以表示原始字符串,以便我们可以删除反斜杠:

In [19]: s = r"{ 'name': 'Skrillex', 'Genre':'Dubstep', 'Bass': 'Heavy', 'thoughts': 'this\'s ahmazing'}"
In [20]: s.replace("\\'", 'REPLACEMEOHYEAH').replace("'", '"').replace('REPLACEMEOHYEAH', "\\'")
Out[20]: '{ "name": "Skrillex", "Genre":"Dubstep", "Bass": "Heavy", "thoughts": "this\'s ahmazing"}'

要替换的REPLACEMEOHYEAH令牌,所以它需要是不会出现在实际字符串中的内容。响应格式看起来像是可以以更自然的方式解析的东西,但如果这不是一个选项,这应该有用。

答案 1 :(得分:0)

  1. 将所有\'替换为魔术词
  2. 将所有'改为'
  3. 将所有魔术字替换回\'