Помогите составить регулярку для вырезания телефона

kolchakA
На сайте с 19.06.2010
Offline
228
688

Есть строки:

"8093-232-1342 Андрей"

"Антон 7128299"

"Александр 3829999 0982299818"

Подскажите регулярку, которая поможет вырезать из каждой строки ПЕРВЫЙ телефонный номер.

Автоматизация для SEO : подключение API, пайпланы из нескольких сервисов, AI генерация контента
Hartamon
На сайте с 04.07.2006
Offline
165
#1

<?

$arr=array("8093-232-1342 Андрей", "Антон 7128299", "Александр 3829999 0982299818");
foreach ($arr as $str)
{
preg_match("/([\d,\-]+)/", $str, $matches);
echo ($matches[1])."\n";
}
?>
kolchakA
На сайте с 19.06.2010
Offline
228
#2
Hartamon:
<?

$arr=array("8093-232-1342 Андрей", "Антон 7128299", "Александр 3829999 0982299818");
foreach ($arr as $str)
{
preg_match("/([\d,\-]+)/", $str, $matches);
echo ($matches[1])."\n";
}
?>

Работает, но вот блин столкнулся с такими номерами типа: "8093 232 1342 Андрей"

Первое вырезает 8093

А еще бывают такие "8093 232 1342 700 28 98 Андрей"

Orangesoda
На сайте с 22.08.2010
Offline
17
#3

([0-9\-\s]+?[0-9])

Ну то есть, символы, кроме последнего - цифра, подчеркивание, пробел, а последний - только цифра

gormarket
На сайте с 29.12.2010
Offline
47
#4


$arr=array("8093-232 1342 Андрей", "Антон 7128299", "Александр 3829999 0982299818", "8093 232 1342 700 28 98 Андрей");
foreach ($arr as $str)
{
preg_match("/[\D]*(\d{0,4}[ -]*\d{0,4}[ -]*\d{0,3}\d)(?=\D|$)/", $str, $matches);
echo ($matches[1]).'<br />';
}

конечно тоже не идеал, но приведенные в топике строки обрабатывает корректно

Товары и цены в магазинах Вашего города: Городской рынок (http://gormarket.ru/)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий