如何在正则表达式中引用“找到”结果

如何在正则表达式中引用“找到”结果

正则表达式将找到满足表达式但不同的匹配项。如何引用结果实例以附加到每个实例?我通过从一个不提供任何文件下载的网站复制/粘贴创建了一个文本文件。我创建的文件包含大量要放入电子表格中的文本和数字。数字的格式为 nn.nn 并以空格分隔。不幸的是,文本中也有空格。因此空格不能用作分隔符。我正在使用“Sublime”文本编辑器,我使用的正则表达式是“\d\d.\d\d”,它标识我要寻找的数字。然后,我想在每个 nn.nn 数字后附加一个逗号,以便将文本文件导入电子表格。

“查找”工具在 Sublime 中可以正常工作,但“替换”工具却不能正常工作。我想要一个“附加”工具,因为似乎没有办法引用在“替换”字段中找到的文本,以便我可以在“替换”框中输入“[找到的内容]”。

那么,有办法吗?

答案1

相当微薄非官方文件建议您可以使用 Perl-like$n或 sed-like\n来引用第 n 个捕获组:

Sublime Text 使用 Boost 库中的 Perl 正则表达式语法。

也可以看看

  • Boost 库中正则表达式的文档
    • 有关正则表达式的文档。
  • Boost 库中有关格式字符串的文档
    • 格式字符串的文档。请注意,Sublime Text 还将 \n 解释为 $n。

例如(在 Ubuntu 22.04 上安装的 sublime-text build 4169 上作为经典快照进行测试):

sublime text 正则表达式捕获替换

虽然我在文档中找不到它,但是 perl-like$&也可以作为整个匹配的替换占位符,允许您省略显式捕获组括号:

sublime text 正则表达式全部替换

相关内容