Я пытался много раз использовать preg_match_all
для получения некоторых телефонных номеров.
Вещи, которые я хочу получить без проблем, это следующие структуры:
09123456789
+989123456789
989123456789
0912 345 6789
+98 912 345 6789
Как я могу использовать preg_match_all, чтобы найти верхние числа?
у них могут быть пробелы или нет.
Все они могут начинаться с +98
ИЛИ ЖЕ 98
Для кода страны,
А потом телефон номер должен начинаться с 9
ИЛИ ЖЕ 0
,
Я пытался так: (Но это не работает для всех)
/[+989][09]*([0-9]{9,})/i
Я думаю, ты хочешь что-то подобное,
(?:\+?98|0)(?:\s*\d{3}){2}\s*\d{4}
<?php
$str = <<<EOT
09123456789
+989123456789
989123456789
0912 345 6789
+98 912 345 6789
EOT;
$regex = '~(?:\+?98|0)(?:\s*\d{3}){2}\s*\d{4}~';
preg_match_all($regex, $str, $matches);
print_r($matches);
?>
Выход:
Array
(
[0] => Array
(
[0] => 09123456789
[1] => +989123456789
[2] => 989123456789
[3] => 0912 345 6789
[4] => +98 912 345 6789
)
)