preg_replace_callback中的preg_replace不起作用

时间:2018-03-17 11:43:00

标签: php regex

我正在尝试编辑包含电话号码的字符串。但preg_replace应删除所有符号但数字 - 不起作用。

$phones = preg_replace_callback(
'/((\(\+\d{5}\)|\+?\d{5})-\d{3}-\d{2}-\d{2}|\+?\d{12})/',
function ($matches) {
    echo "<br />".$matches[0];
    preg_replace('/[^0-9]+/','',$matches[0]);
    echo "<br />".$matches[0];
    echo "<br />+".substr($matches['0'], 0, 5)."-".substr($matches['0'], 5, 7);
},
$stringWithPhoneNumbers);

1 个答案:

答案 0 :(得分:0)

您需要将结果保存在变量中

+------------+-----------------------+
| COLLECTION |                  days |
+------------+-----------------------+
|   ETE 2019 |[20191226,20191225,...]|
| HIVER 2019 |[20190626,20190825,...]|
+------------+-----------------------+

或退货。否则,您正在对未更改的初始preg_replace('/[^0-9]+/','',$matches[0], $matches2); # ^^^ 数组进行操作。此外,$matches可缩短为[^0-9]+