在 VS Code 中使用正則表達式進行搜索和替換
我需要對我的網站存儲庫進行一個相當大的更改。 我有數百個 Markdown 文件,而在我的 Markdown 中,有時會包含帶有空格的圖像,這主要是因為它們是截圖,所以格式類似於 Screen Shot 2021-10-16 at 09.45.47.png 加載圖像的字符串是: ![Alt text](/images/vscode-search-replace-regex/Screen\_Shot\_2021-10-16\_at\_09.45.47.png) 這在我安裝的 Hugo 版本中運行良好,但最近在版本 0.100 中,他們刪除了我使用的 Markdown 库,名為 Blackfriday,現在只支持 Goldmark,它不再允許圖像中有空格(還有其他更改)。 為了跟上 Hugo,我真的需要更新我的網站,因為我使用的是舊版本,已經停止更新 10 個月了。 這就是我的問題所在。我需要更新所有的圖像鏈接。 嗯,其實不是這樣。我可以在圖像名稱中加上 <>: ![Alt text](/images/vscode-search-replace-regex/Screen\_Shot\_2021-10-16\_at\_09.45.47.png) 然後一切又正常了。 我只需要搜索和替換所有的圖像鏈接! 我有成千上萬個這樣的鏈接,這不是我要做的事情。 所以我記得在 VS Code 中的查找/替換功能中有正則表達式。 經過一番試驗,使用如下的正則表達式: !\[(.+)\]\((.\*\s+.\*)\) 我能夠創建 2 個捕獲組,一個用於 alt 文本,一個用於文件名。 然後在替換框中,我可以使用 $1 作為 alt 文本,使用 $2 作為文件名: !\[\]\((.\*\s+.\*)\) 這個替換字符串 ![](/images/vscode-search-replace-regex/$1)對於沒有 alt 文本的圖像有效(我知道,我知道…): 我是如何得出這些正則表達式的? 主要通過我的 JavaScript 正則表達式教程。 我之前寫過那篇文章,但它仍然是我首選的資源。 然後是一些谷歌搜索和使用 https://regex101.com 快速測試正則表達式。 正則表達式對我來說仍然有點神奇,但有時它是唯一能做到的工具。 就像在這個例子中一樣。