1

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

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

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

2 回答 2

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令牌,因此它需要是不会出现在您的实际字符串中的东西。响应格式看起来可以以更自然的方式解析,但如果这不是一个选项,它应该可以工作。

于 2012-11-16T02:42:40.453 回答
-1
  1. 将所有 \' 替换为一个神奇的单词
  2. 将所有 ' 替换为 "
  3. 将所有魔术词替换回\'
于 2012-11-16T02:43:11.573 回答