preg_replace怀疑

时间:2011-09-26 16:40:33

标签: php regex preg-replace

我做错了什么?

echo preg_replace('#\d{3}\d{3}\d{3}\d{2}#', '$1.$2.$3-$4', '12345678901');

输出为: 123.456.789-01 。还没有形成字符串!!

2 个答案:

答案 0 :(得分:3)

<?php
echo preg_replace('#(\d{3})(\d{3})(\d{3})(\d{2})#', '$1.$2.$3-$4', '12345678901');

是正确的,因为美元符号+整数是指()括号(分组)中的内容

demo

答案 1 :(得分:2)

您没有正确分组(缺少括号):

echo preg_replace('#(\d{3})(\d{3})(\d{3})(\d{2})#', '$1.$2.$3-$4', '12345678901');