PHP Regex для извлечения номера телефона из + в первый не номер

1

EDIT: Я делаю это, потому что данные, которые я предоставил, содержат сотни записей, разделенных новой строкой, в этом формате, и мне нужно включить микроформаты в адресные данные. Таким образом, если строка, представленная ниже, мне нужно вывести:

<p><span itemprop="telephone">+1 800 123 456</span> (toll free) from overseas</p>

-

Мне нужно регулярное выражение для извлечения номера телефона из следующего формата:

+1 800 123 456 (бесплатный) из-за рубежа

Данные, которые я предоставил, были последовательно введены в этом формате, так эффективно, регулярное выражение, чтобы получить все и от "+" до первого нецифрового символа.

  • 1
    Хорошо, вы можете предоставить свои попытки?
  • 3
    Вместо явного вытаскивания номера телефона. можете ли вы просто удалить все, что не является числом или знаком плюс, используя preg_replace('/[^0-9\+]/', '', $phone_number); ?
Теги:

1 ответ

1
Лучший ответ

Если вы хотите использовать регулярное выражение, вы можете использовать что-то вроде этого:

\+[\d\s]+

$re = '/(\+[\d\s]+)/'; 
$str = "+1 800 123 456 (toll free) from overseas\n"; 

preg_match_all($re, $str, $matches);

С другой стороны, вы можете использовать то, что предложил castis, использовать preg_replace для замены символов, которые вы не хотите пустым, и сохранить остальные, например:

preg_replace('/[\D\+]/', '', $phone_number); 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню