de-vraag
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 Martin
Martin
Вопрос

Как получить мое регулярное выражение для извлечения информации, а не просто проверить

У меня есть регулярное выражение для проверки, является ли строка почтовым/почтовым кодом или нет. Но я действительно хотел бы также иметь возможность извлечь это из полного адреса (или, если возможно, любой строки).

Вот мое текущее регулярное выражение:

/^((\d{5}-\d{4})|(\d{5})|([a-zA-Z]\d[a-zA-Z]\s\d[a-zA-Z]\d)|([a-zA-Z]\d[a-zA-Z]\d[a-zA-Z]\d))$/

Если необходимо, я готов согласиться на функцию (я проверяю PHP), но я предпочел бы, чтобы regexp выполнял работу, если это возможно.

1 2011-10-27T19:12:52+00:00 3
 Matt
Matt
Редактировал вопрос 21-го июня 2013 в 8:55
Программирование
zipcode
postal-code
regex
php
street-address
Michael Berkowski
27-го октября 2011 в 7:15
2011-10-27T19:15:07+00:00
Дополнительно
Источник
Редактировать
#56791837

PHP будет извлекать группы в () в массив с <код> preg_match () :

$matches = array();
$pattern = "/^((\d{5}-\d{4})|(\d{5})|([a-zA-Z]\d[a-zA-Z]\s\d[a-zA-Z]\d)|([a-zA-Z]\d[a-zA-Z]\d[a-zA-Z]\d))$/";
preg_match($pattern, $your_source, $matches);
print_r($matches);
2
0
John Flatness
27-го октября 2011 в 7:20
2011-10-27T19:20:00+00:00
Дополнительно
Источник
Редактировать
#56791838

preg_match, which I assume you're already using when you're checking a string against your regular expression, also gives you back the actual text that matched your pattern.

preg_match($regex, $input, $matches);
echo $matches[0];

Третий аргумент заполняется результатами попыток сопоставления регулярному выражению с вашим вводом. $ matches [0] будет содержать текст, сопоставляющий весь шаблон, в то время как более высокие индексы будут содержать текст, сопоставляемый с захватом подшаблонов (части шаблона, заключенные в круглые скобки).

Однако в вашем случае вы вложили свой шаблон с символами ввода-вывода ^ и end-of-input $ , что означает, что любые совпадения должны включать целая строка ввода (или целая строка в многострочном режиме). Вам нужно будет избавиться от ^ и $ , прежде чем пытаться использовать этот шаблон для извлечения почтового кода из большей строки.

2
0
mdwhatcott
12-го января 2012 в 3:23
2012-01-12T15:23:48+00:00
Дополнительно
Источник
Редактировать
#56791839

Поскольку вы работаете с полным адресом, почему бы не полагаться на услугу, которая может точно извлекать и проверять адрес и анализировать его компоненты (включая полный почтовый индекс), обеспечивая хороший ответ? Это наверняка устранит любые догадки. На скриншоте ниже показан инструмент SmartyStreets, который может извлекать адреса из всех видов текста. В интересах полного раскрытия я разработчик программного обеспечения на SmartyStreets .

https://smartystreets.com/account/extract

LiveAddress extraction

0
0
Похожие сообщества 25
phpGeeks
phpGeeks
4 693 пользователей
Best PHP chat @phpGeeksJunior - новичкам @golangGeeks - гошка @jobGeeks - вакансии(250000 р/мес) @dbGeeks - базы данных @ebanoePhp - канал о PHP @laravel_pro - Laravel @jsChat - JS @moscowProgers - Москва Реклама: https://vk.cc/cbJtVV ДР - 28.03.2016
Открыть telegram
PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
3 836 пользователей
Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii etc. Full/par-time, remote и т.д. ПРАВИЛА: https://t.me/php_jobs/45345 Флудильня: @phpimhorus More: @javascript_jobs, @nodejs_jobs, @devops_jobs, @sql_jobs
Открыть telegram
phpGeeksJunior
phpGeeksJunior
3 051 пользователей
Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Реклама: https://vk.cc/cbJtVV Правила и полезные ссылки https://github.com/phpgeeks-club/faq Бест от пхпгикс https://t.me/best_of_phpgeeks
Открыть telegram
#php chat
#php chat
2 921 пользователей
Группа для новичков и бывалых. Не стесняйтесь задавать вопросы по php. Уважаем друг друга. Администрация: @kaviychik Сотрудничество: @valeriya_blonski
Открыть telegram
PHP
PHP
2 625 пользователей
Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/fesor/6c8b162ac1e2fe4d6f227341ec8eaadf Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev
Открыть telegram
phpclub.ru
phpclub.ru
1 756 пользователей
Официальный чат phpclub.ru - остерегайтесь подделок 😊 Уважайте друг друга. Скриншоты ссылками. Код на pastebin.com. Вакансии публиковать на форуме phpclub.ru, в чат только ссылку на форум. За рекламу и мат - БАН!
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Roxana Elizabeth CASTILLO Avalos
Зарегистрирован 4 дня назад
2
Hideo Nakagawa
Зарегистрирован 5 дней назад
3
Sergiy Tytarenko
Зарегистрирован 1 неделю назад
4
shoxrux azadov
Зарегистрирован 1 неделю назад
5
Koreets Koreytsev
Зарегистрирован 1 неделю назад
© de-vraag 2022
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией