这是 VS Code 中的查找和替换问题。
我想在 VS Code 中的 Markdown 文件中找到以下文本:
## [](https://www.website.com/)Heading
并替换为以下文本
## [Heading](https://www.website.com/)
所以我用它## \[]\(.+?\)(.*)
来查找表达式。但为了用上面的表达式替换,我输入了这个,## [$1]\(.+?\)(.*)
但它不起作用。我该怎么做?正则表达式在替换中不起作用吗?
答案1
为了调整字符串各部分的顺序,一种方法是首先捕获整个字符串及其所有相应部分。
让我们看看下面的截图。字符串的每个部分都映射到一个编号组。本例中有 6 个编号组。将所有部分作为组捕获可以精确控制替换部分。
在 VS Code 中它看起来像这样:
查找:(##)(\s+)(\[)(\])(\(.*?\))(Heading)
替换:$1$2$3$6$4$5
输入
## [](https://www.website.com/)Heading
输出
## [Heading](https://www.website.com/)
让我们尝试一些更通用的方法:
查找:(##)(\s+)(\[)(\])(\(.*?\))([^^]+)
替换:$1$2$3$6$4$5
输入
## [](https://www.website.com/)Heading
## [](https://www.website2.com/)Heading2
## [](https://www.website3.com/)Heading3
输出
## [Heading](https://www.website.com/)
## [Heading2](https://www.website2.com/)
## [Heading3](https://www.website3.com/)