[英]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.