按模式查找所有出现的内容,并在Python中替换其中的引号

时间:2017-11-03 10:44:31

标签: python regex

我想在我的long String中用引号"替换引号\"。所以,我想出了通过模式找到它然后替换那些引号的想法。但我错过的可能是错误的模式或错误的方法用法:

string = re.sub(r"\"(.*)\"",  r"\1", string).re.replace("\"", "\\\"")

不幸的是,它仍然取代了所有引号而不是内部引用。

这就是我想要实现的目标,取而代之 "text example.. something + "hello" + foo" 对此: "text example.. something + \"hello\" + foo"

请注意,这可能会在我的长字符串中多次出现。感谢您的任何建议! :)

@EDIT 我认为最好添加我的字符​​串的确切示例(我的字符串看起来类似于JSON

"data": "fun () { return this.value * 20 + "x"; }"

现在我想删除 x 中的引号,如下所示:

"data": "fun () { return this.value * 20 + \"x\"; }"

1 个答案:

答案 0 :(得分:0)

尝试使用否定的外观:

(?<!^)\"(?!$)

请参阅this demo

这与第一个和最后一个引号不匹配,只与字符串中的引号匹配。