Мне было интересно, что является самым безопасным и наиболее эффективным способом извлечения номеров посылок / 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
Я думаю, что ты рядом. Всем номерам посылок в приведенном выше примере кода предшествует 15-значный номер, поэтому вы можете сделать:
$pattern = '/\d{15} [\dA-Z.\-]{9,30}/';
или если все, что вы хотите, это вторая часть:
$pattern = '/\d{15} ([\dA-Z.\-]{9,30})/';
Этот шаблон позволяет избежать случайного захвата почтовых индексов, как это делает используемый вами шаблон.
Других решений пока нет …