preg_replace Double Spaces到一行开头的tab(\ t)

Nee*_*asu 2 php regex preg-replace

只是一个简单的快速问题.我想用Tabs替换该行的begenning中的Double Spaces.目前我正在尝试, preg_replace('~^( {2})~', "\t", $text)但只替换第一次出现的Double Space.

- 编辑 -

preg_replace('~PATTERN~', "REPLACEMENT", "      HalloWorld")
//Should be equal to "\t\t\tHallo World"
Run Code Online (Sandbox Code Playgroud)

zeu*_*xcg 5

您可以使用\ G转义序列:

$var = '    Hello    World'; //x4 spaces
echo preg_replace("/\G {2}/","\t",$var);
Run Code Online (Sandbox Code Playgroud)

\ G标记前一个匹配结束的位置(或第一个匹配的字符串的开头); 这样,第一个匹配后的所有匹配尝试从前一个匹配的字符中消耗额外的两个空格.