Вам не хватает +
и -
в вашем шаблоне. Вы можете обновить свой шаблон, чтобы использовать 2 группы захвата и использовать preg_match_all . Чтобы добавить номер мобильного телефона в массив, вы можете объединить первый и второй индексы.
\+(\d{2})-(\d{3}(?: \d{3}){2})\b
Regex demo | Php demo
Например
$part = "+61-426 861 478 +61-426 861 479 ";
preg_match_all('/\+(\d{2})-(\d{3}(?: \d{3}){2})\b/', $part, $matches, PREG_SET_ORDER, 0);
if (count($matches)) {
foreach ($matches as $mob) {
$records['mobile'][] = $mob[1] . ' ' . $mob[2];
}
}
print_r($records);
Результат
Array
(
[mobile] => Array
(
[0] => 61 426 861 478
[1] => 61 426 861 479
)
)
Если число является единственной строкой, вы также можете удалить все нецифровые цифры, используя \D+
, и заменить их пробелом. Затем используйте ltrim, чтобы убрать начальное пространство из +
. См. php demo .