2017-02-16 1 views
1

Как разделить строку с номерами телефонов на несколько элементов в массиве?php regex разделяет строку с номерами телефонов на несколько элементов в массиве

Например, мы имеем строку, как это: "phone" => "+7 (343) 228-02-08 +7 (343) 203-209-3" или "phone" => "8 (800) 555-92-86 8 (499) 322-16-40 8 (812) 426-10-38"

Но мы должны это сделать:

"phone" => [ 
    "0" => "+7 (343) 228-02-08", 
    "1" => "+7 (343) 203-209-3", 
] 

и для другого

"phone" => [ 
    "0" => "8 (800) 555-92-86 8", 
    "1" => "8 (499) 322-16-40", 
    "2" => "8 (812) 426-10-38", 
] 

Я пытался найти некоторые готовые решения, но ничего не найдено. Регулярные выражения - это слишком сложно для меня ...

+0

У вас есть образец, из которого он может быть сломанный, чтобы быть номером телефона –

+0

Каковы другие возможные номера телефонных номеров, которые могут возникнуть у вашего ввода? – anubhava

+0

@anubhava Так же, как я писал. Спасибо за ответ! –

ответ

0

Вместо split вы можете использовать сопоставление с помощью preg_match_all функции, используя это регулярное выражение:

/\+?\d\h*\(\d{3}\)\h*[\d-]+/ 

RegEx Demo

+1

Большое спасибо! Вы мне очень помогли! Обещаю, что буду изучать регулярные выражения. –

Смежные вопросы