如何使用正则表达式替换具有相同字符数的多个字符?

Chr*_*der 2 php regex preg-replace

我有以下来源:

<font color="black">0</font><font color="white">1101100001001101</font><font color="black">1</font><font color="white">0110</font>
Run Code Online (Sandbox Code Playgroud)

并希望替换所有白色 1和0空格.我可以很容易地匹配它们

/<font color="white">([10]*)</font>/g
Run Code Online (Sandbox Code Playgroud)

是否有替换模式(我使用PHP)为匹配组生成相同数量的空间$1?

结果应如下所示:

<font color="black">0</font><font color="white">                </font><font color="black">1</font><font color="white">    </font>
Run Code Online (Sandbox Code Playgroud)

(请忽略我在这里用正则表达式解析HTML的事实.我对正则表达式问题的解决方案比对HTML更感兴趣.)

ako*_*ond 5

$test = '<font color="black">0</font><font color="white">1101100001001101</font><font color="black">1</font><font color="white">0110</font>';

echo preg_replace ('~(<font color="white">)([10]*)(</font>)~e', '"\\1" . str_repeat(" ", strlen ("\\2")) . "\\3"', $test);
Run Code Online (Sandbox Code Playgroud)