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 に答える