繁体   English   中英

全局查找并替换Visual Studio Code中的换行符

[英]Global find and replace with newline in Visual Studio Code

假设我要删除与项目中的正则表达式匹配的所有行。 有没有办法做到这一点?

使用全局查找和替换功能启用正则表达式我尝试过:

  1. 用空字符串替换foo|bar 这不起作用,因为它留下了一个空字符串。 我想删除换行符。

  2. 用空字符串替换(foo|bar)\\n 这实际上并不匹配任何东西。

  3. 用空字符串替换(foo|bar)$ 再次,不匹配任何东西。

有任何想法吗?

编辑 :好像我的一些文件有Windows行结尾所以(foo|bar)\\r?\\n 确实匹配。 但是当你用一个空字符串替换它时,它实际上仍然留在那里的行结尾。

这是一个测试用例:

a
foo
b

它应该像这样结束:

a
b

不是这样的:

a

b

foo\\n^(foo|bar)\\n^都有效。

我刚刚在我的vs代码中测试了 - 你将替换字符串留空了

是的 ,可以使用search-across-files功能删除整行。

我猜测原始问题是由于旧版VSCode中的错误或其他不需要的行为造成的。 使用VSCode 1.37.1,只要\\n包含在正则表达式中,就会删除该行。 特别是,在原始问题中描述为不起作用的正则表达式(foo|bar)\\n现在工作正常。

之前:

更换前截图

按“全部替换”按钮后:

更换后的屏幕截图

相关观察:

  • 即使我将文件行结尾设置为CRLF,这个相同的正则表达式也可以工作。

  • 追加^没有区别。 这有点令人惊讶,但也许“在换行后”算作“行首”。

  • 追加$会导致正则表达式与任何内容都不匹配。 考虑到^的行为,这是非常令人惊讶的。

  • 我查看了搜索配置设置,但似乎没有任何影响这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM