[英]Global Find and Replace in Visual Studio With Regular Expressions
[英]Global find and replace with newline in Visual Studio Code
假设我要删除与项目中的正则表达式匹配的所有行。 有没有办法做到这一点?
使用全局查找和替换功能启用正则表达式我尝试过:
用空字符串替换foo|bar
。 这不起作用,因为它留下了一个空字符串。 我想删除换行符。
用空字符串替换(foo|bar)\\n
。 这实际上并不匹配任何东西。
用空字符串替换(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.