regex — Как извлечь сложные номера посылок & amp; Строки с использованием переполнения стека

Мне было интересно, что является самым безопасным и наиболее эффективным способом извлечения номеров посылок / AIN с использованием Reg Exp через PHP. Эти номера отправляются из огромного текстового файла, который окружен адресами, символами и строками. Когда я использую php reg exp, я не получаю никаких точных посылок, которые мне нужны. Я не уверен, как извлечь номера посылок, так как они могут быть разными способами. Фрагмент текста и регулярное выражение, которое я использую, приведено ниже.

(Посылки обычно бывают разными способами, для многих, чтобы перечислить здесь, но вот несколько

  • 130.1-8-13,

  • 01-00603-0000-00002-0000-С-0410,

  • 01-0AVB-0000-00002-0000-С-0410,

  • 01-00603-0000-00002-0000-БОС-0101,

  • 412001216.39-2-22,

  • 412089214.-1-3.12,

  • 412001216.41-1-12.6,
    )

PHP-код, который я сейчас использую ..

   $pattern = '/[0-9A-Z.\-]{9,30}/';

$reg_exp = preg_match_all($pattern, 'text below' , $matches,   PREG_PATTERN_ORDER);

12020 200800031620700
412001216.41-1-11.1 ДЖО ДЖЕКСОН Л 555 ВОСТОЧНЫЙ АВЕ БАЛЛСТОН СПА, Нью-Йорк 12020 200800059632500
412001216.41-1-11.2 MICHEAL JORDAN 555 YELLOW AVE BALLSTON SPA, Нью-Йорк 12020 200800007874700
412001216.41-1-12.6 BRITTNEY SPEARS PO BOX 139 ESOPUS, NY 12429-0139 200800057794400
412001216.47-2-17 MAROON 5 686 BALLYY AVE BALLSTON SPA, NY 12020 200800031662900
412001216.48-1-21 LADY J GAGA SMIT FORNOTX ROBERT 999 N HIGH ST GILLMORE SPA, Нью-Йорк 12020 200800065014500
412001216.55-1-8 БИЛЛИ РОДЖЕР ЛИЛ ДЖОЗЕФ А JR

1

Решение

Я думаю, что ты рядом. Всем номерам посылок в приведенном выше примере кода предшествует 15-значный номер, поэтому вы можете сделать:

$pattern = '/\d{15} [\dA-Z.\-]{9,30}/';

или если все, что вы хотите, это вторая часть:

$pattern = '/\d{15} ([\dA-Z.\-]{9,30})/';

Этот шаблон позволяет избежать случайного захвата почтовых индексов, как это делает используемый вами шаблон.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]