2015-02-09 93 views
1

我正在使用Notepad ++查找(".*)"(.*)并将其替换为\1\"\2,但它似乎不起作用。我不知道为什么。在记事本++中用引号括起来的引号替换引号内的引号?

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

编辑:在我的情况下,收盘报价始终是行,以便将(".*)"(.*"$)工作的结束?

编辑2:第一个报价前面加上逗号,所以我会用(,".*)"(.*"$),尽管在某些情况下它可能不起作用,但我认为它可以与我的文件一起工作。

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

+2

替换字符串是可能的吗?那么这个:'“abc”,“123”'vs'“下面的字符”,“被称为逗号”'?你怎么知道一个价值的结局和另一个开始? – Kobi 2015-02-09 11:41:34

+0

如果我这样做(“。*)”(。*“$)”,那么美元意味着行尾 – Cloules 2015-02-09 11:43:24

+0

然后你有更具体的要求,你需要编辑你的问题来解释。 “我问”为什么?“,他们说”逃脱的字符!“' – Kobi 2015-02-09 11:47:55

回答

1

应该工作...你只需要做一点点固定...

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

制作确定您选择搜索模式为“正则表达式”

说明...

这非常棘手 - 我假设在引号内引用的文本只是一个单词。如果你认为别的东西很难定下来。

你需要找到一个
"其次
[^"]* - 任意数目的字符不属于"然后
("\w*)(") - 带引号的单词,然后最后 ([^"]*") - 非引号中的任何附加号码字符+最终报价

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

在你需要有\\代表单个\

+0

当我使用它时,它将转义字符添加到所有引号中。你能为我简单解释一下这个正则表达式吗? – Cloules 2015-02-09 12:06:08

+0

嗨@Cloules,只是现在更新了一些解释。 – 2015-02-09 12:09:30

+0

再次问好 - @Cloules我已经更仔细地重读了这个问题,并相应地更新了正则表达式和替换。请注意警告。我不得不在引号内假设一个单词。 – 2015-02-09 12:47:25