0

我有一组这样的词

"text1
"text2
"text3

我需要将其转换为引用的文本,我可以使用这样的stackoverflow帮助来完成

Find: ^\".*$
replace: $0"

还有一组这样的词

text1
text2
text3

我需要将其转换为我能够做到的 1 个引用文本

Find: ^(.+)$
Replace: "$0"

但在这种情况下,我只能通过单击全部替换而不是替换来做到这一点。

谁能告诉它为什么会这样,我怎样才能在不使用全部替换和仅使用替换的情况下实现这一点?

4

3 回答 3

1

在任何情况下,它都应该与全部替换而不是替换一起使用。该功能还可能受光标位置和查找/替换方向的影响。

可以肯定的是,您可以将光标放在文件的开头,确保查找方向为“向下”并使用全部替换。

现在到正则表达式,是的,您可以在一次替换中完成。使用这个发现:

^(?:")?(.*)$

而这个替换:

"$1"

正则表达式 101 演示

(?:")?使用第一个双引号(如果存在),以便以后不会将其放入替换中。

于 2013-10-31T13:03:57.253 回答
1

注意第二个替换,它将替换"text1"""text1"".

改用这个:

find what: ^[^"\n]+$
replace: "$0"
于 2013-10-31T12:56:50.403 回答
0

在第一种情况下,您不可能只使用一次“替换”!您必须按下它 3 次(与您的匹配次数一样多)。

在这两种情况下,您都需要“全部替换”,因为您需要多个全局匹配。当按下“全部替换”按钮时,就像在替换中使用Perl 的 /g&/m修饰符一样,您可以在此处进行实验以了解我的意思。

顺便说一句,在第二个示例中使用捕获组(括号)是多余的,请使用 find:^.+$和 replace: "$0"

于 2013-10-31T11:56:49.610 回答