如何在替换中使用正则表达式中匹配文本的一部分用于 Sublime Text?

How do I use a part of the matched text in regex for Sublime Text, in the replacement?

如果我有

width: 12px 0;
width: 24px 0;

如何使用正则表达式将其替换为

width: 12px 0px;
width: 24px 0px;

同时保持第一个数字不变?

我正在使用使用 Python PCRE 作为正则表达式的 Sublime Text。我尝试搜索 Google 和 Bing 并阅读 Sublime Text 文档,但找不到任何有用的信息。使用 :[0-9]*px 0;:${m}px 0px; 无效。

你可以使用

(:\h*\d+px\h+\d+);
  • ( 捕获组 1
    • :\h*\d+px 匹配 : 个可选空格和 1+ 个数字后跟 px
    • \h+\d+匹配1+个空格和1+个数字
  • );关闭组并匹配 ;

并替换为第一组,然后是 px;,如 px;

Regex demo


在不使用捕获组的情况下,这可能是使用 \K 忘记到目前为止匹配的内容并替换为 px;

的另一种选择
:\h*\d+px\h+\d+\K;

Regex demo