在行首将preg_place两个空格替换为tab()

2022-03-22 00:00:00 regex php preg-replace

只是一个简单的快速问题。 我想用制表符来代替行首的两个空格。 当前我正在尝试使用preg_replace('~^( {2})~', " ", $text),但这只替换了第一个出现的双空格。

--编辑--

preg_replace('~PATTERN~', "REPLACEMENT", "      HalloWorld")
//Should be equal to "			Hallo World"

解决方案

您可以使用G转义序列:

$var = '    Hello    World'; //x4 spaces
echo preg_replace("/G {2}/","	",$var);

G标记上一个匹配项的结尾位置(或第一个匹配项的字符串开始位置);这样,第一个匹配项之后的所有匹配项都会尝试占用上一个匹配项停止的字符的另外两个空格。

相关文章