簡體   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