用notepad ++中的转义引号替换带引号的字符串中的引号?

时间:2015-02-09 11:37:52

标签: regex notepad++

我正在使用Notepad ++查找(".*)"(.*)并将其替换为\1\"\2,但它似乎不起作用。我不知道为什么。

例:
Someone said "My name is "sean""
我希望它是:
Someone said "My name is \"sean\""

编辑:在我的情况下,结束引用总是在行尾,所以(".*)"(.*"$)会工作吗?

Edit2:第一个引号前面都有一个逗号,所以我会使用(,".*)"(.*"$)虽然在某些情况下它可能不起作用,但我认为它适用于我的文件。

现在存在替换问题,它没有添加\"它只是添加了一些空间。

1 个答案:

答案 0 :(得分:1)

应该有用......你只需要做一点修理......

查找正则表达式应为("[^"]*)("\w*)(")([^"]*")
替换为表达式应为\1\\\2\\\3\4

确保选择搜索模式为"正则表达式"

<强>解释...

这非常棘手 - 我假设引用的文本WITHIN引号只是一个单词。如果你假设别的东西,就很难确定。

你需要找到一个 "后跟
[^"]* - 任意数量的字符不是"然后是
("\w*)(") - 一个引用的词,然后是最后的 ([^"]*") - 任何额外数量的非引用字符+最终引用

这很重要,因为默认情况下正则表达式匹配是贪婪的,.*将继续匹配所有字符,包括"直到字符串结尾(参见link)< / p>

在替换字符串中,您需要\\来表示单个\