这个回顾是否有更紧凑的正则表达式?

Is there a more compact regex for this lookbehind?

我正在尝试 select 在文件的每一行中每次出现 4 个前导 space 时将它们替换为 2 个 space 以便重新格式化。我最终使用的 Find All 正则表达式是:

^ {4}|(?<=^ {4}) {4}|(?<=^ {8}) {4}|(?<=^ {12}) {4}|(?<=^ {16}) {4}

我已经 a demo here 准确显示了我希望它如何突出显示该文件。

有没有更好的方法来实现这个目标?注意我希望 Sublime Text 单独 select 每组 4 spaces,我不希望每一行包含前导白色-space 都在一个 selection .

^(?:( ) )(?:( ) )?(?:( ) )?(?:( ) )? 替换为

在功能上是等效的,不需要回顾。

它也需要正则表达式引擎大约 9% 的工作量(702 对 7680 步)。