问题描述
我正在使用记事本++查找(".*)"(.*)
并将其替换为1"2
,但它似乎不起作用。我不知道为什么。
示例:
Someone said "My name is "sean""
我希望是:
Someone said "My name is "sean""
编辑:在我的情况下,右引号始终位于行尾,因此(".*)"(.*"$)
可以吗?
Edit2:第一个引号前面还有一个逗号,因此我将使用(,".*)"(.*"$)
,尽管它在某些情况下可能不起作用,但我认为它适用于我的文件。
现在有问题了,替换它没有添加"
它只是添加了一些空格。
推荐答案
它应该可以工作...您只需要做一些修复工作...
查找正则表达式应为("[^"]*)("w*)(")([^"]*")
替换为表达式应为1\2\34
确保将搜索模式选择为"正则表达式"
解释...
这相当棘手--我假设引号中的文本只是一个单词。如果你假设了其他事情,就很难确定了。
您需要找到一个
"
后跟
[^"]*
-非"
的任意数量的字符,然后
("w*)(")
-一个被引用的单词,然后最后
([^"]*")
-任意数量的非引号字符+最后一个引号
这一点很重要,因为默认情况下,正则表达式匹配是贪婪的,.*
将继续匹配所有字符,包括"
,直到字符串结尾(请参阅link)
在替换字符串中,您需要\
来表示单个