VS Code正则搜索替换中如何引用捕获到的分组内容?
在VS Code中用正则捕获组替换内容的正确操作
- 先确认开启正则模式:点击替换面板右上角的
.*按钮,按钮高亮就代表已经开启——这是最容易漏掉的前提,没开的话$1这类符号会被当成普通文本替换。 - 正确写捕获组:用未转义的圆括号
()把要捕获的内容包起来,比如想捕获“test”后面的字母,搜索正则写成test([a-z]+)。 - 替换时引用捕获内容:直接用
$1、$2对应第1、第2个捕获组,比如上面的例子替换成result:$1,就能把“testabc”改成“result:abc”。
常见踩坑点
- 要是
$1没效果,先查正则模式有没有开,很多时候都是这个原因。 - 别把捕获组的括号转义了:如果写成
test\([a-z]+\),那只是匹配字面的(abc),不会创建捕获组。 - 用命名捕获组的话,语法是
(?<myGroup>[a-z]+),替换时要写成${myGroup}来引用。
内容的提问来源于stack exchange,提问作者Mert Mertce
相关产品推荐
相关产品推荐

