如何在VS Code中使用正则表达式在每行末尾添加字符串?

44
在 Visual Studio Code 中,我正在使用替换功能。正则表达式选项已激活,并且参数如下所示。

查找:^.*$
替换为:\0 Donkey

虽然编辑器似乎识别出了模式(根据高亮显示判断),但并没有进行替换。它可以使用其他模式,但不包括包含行结尾的模式。
我还尝试了包括但不限于以下组合。

查找:^(.*)$
替换为:$0 Donkey

我该怎么做?
一个程序员有一次问题。
他说:“让我们使用正则表达式。”
然后他遇到了两个问题...

使用 $& 代替 $0 - Wiktor Stribiżew
似乎 * 量词单独使用存在一些问题。但是 ^.*.$ 是可以的。 - revo
似乎在较新版本的VS Code中已经修复了这个错误。我可以在1.2.0中重现相同的错误。 - Wiktor Stribiżew
@WiktorStribiżew 我正在使用1.5.3版本(2016年9月22日)。可能是这样的吗?在我的机器上,它不像你描述的那样工作。这有多疯狂啊? - Konrad Viltersten
一个程序员曾经遇到过一个问题... 哈哈 - Ashi
显示剩余5条评论
7个回答

78

这个模式在我的 VS Code 上确实有效,但仅适用于实际包含内容的行。空行保持为空。

查找:^(.*)$
替换:$0 Donkey


4
你使用的是 ^(.+)$,对吧? ^.*$^(.*)$ 不起作用。 - Wiktor Stribiżew
$0 Donkey和$1 Donkey都使用@Andy J的Find在我的VSCode中将\sDonkey附加到每一行。如果您只想附加到有内容的行,请使用^(.+)$。VSC 1.5.3 - Mark
请问您的 VSC 版本是否确认?我的版本是 1.2.0。 - Wiktor Stribiżew
@Mark,我不是在开玩笑!我确实知道它应该按照你说的那样工作,但在我的系统上,即使我使用星号,它也会跳过空行。一个未保存的文件,没有文件扩展名——如果有任何区别...奇怪。 - user1675891
@Konrad 1.5.3 我相信是最新的版本。 - Mark
显示剩余7条评论

28
最简单的方法是这样的:
找:.$
替换:$&Donkey

10
你可以使用:

$ = 行尾 ^ = 行首


7
在 Visual Studio 中,在每行末尾和开头添加文本,使用正则表达式选项查找。
^(.+)$

替换
Alpha $1 Zeta
结果

之前

some text

之后

Alpha some text Zeta

图像截屏结果

图像截屏结果


4

在开头和结尾加上单引号,用逗号隔开。

查找:(.*)$

替换:'$1',

我想要这个:

 273794103
 418892296
 134582886

成为:

 '273794103',
 '418892296',
 '134582886',

我需要这个来编写SQL查询,而不是手动为50个ID键入逗号 :).
参考:This 和 AI.

1
我不明白这如何回答实际提出的问题。重点是将换行符作为匹配字符串的一部分包含进去,然后将其作为生成的输出的一部分呈现出来。 - Konrad Viltersten
1
另外,我对“参考:AI”这部分有些疑问。这是基于GPT的回答吗?如果是的话,我需要指出在这个网站上是不允许的(而且有很好的理由,因为它很少能产生可靠和高质量的答案)。或者你找到了其他的人工智能知识来源?如果是这样,请分享链接。我很想用AI来改进我的代码(当然要可靠地进行)。 - Konrad Viltersten
@KonradViltersten,虽然接受的答案是正确的,但我只是回答了这个问题,我认为其他人可能会从类似问题中获益,尤其是对于不同类型的输出。参考资料既包括人工智能生成的答案,也包括聊天GPT的答案。我仔细检查了AI生成的内容,并进行了测试,然后将其作为答案给出。 - Shaiju T
1
扩大他人使用范围的想法令人振奋,所以我甚至会给你点赞。然而,要小心那些AI辅助的答案。你(显然)知道要怀疑地审查愚蠢的GPT生成的内容。然而,这是一个敏感而微妙的界限 - 你不想被误认为是那些毫无思考地将垃圾丢进黑匣子、完全无视回答质量的业余爱好者之一,却愚蠢地相信产生的结果是有用的。 - Konrad Viltersten

2

在每行开头添加引号:

enter image description here

在每行末尾添加引号:

enter image description here


1

我在这里只回答了一小部分问题的搜索结果,
为新手提供了这个答案;
这也可以工作:

  1. 按下“ctrl+H”(查找和替换);
  2. 键入“\n”(不带引号),并且
  3. 在查找框旁边,点击并打开“使用正则表达式”,如下图所示;
  4. 现在,在替换框中,键入您的文本(例如“驴”),并别忘了在末尾添加相同的“\n”(不带引号)。 enter image description here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接