我想知道使用Reg Exp通过PHP提取Parcels / AIN数字的最安全和最有效的方法是什么。这些宗地编号来自一个巨大的文本文件,由地址,字符和字符串包围。当我使用php的reg exp时,我得不到任何我想要的准确包裹。我不确定如何提取包裹数量,因为它们有多种方式。文本片段以及正在使用的正则表达式如下所示。
(包裹通常有多种方式,许多人可以在这里列出,但这里有几个
130.1-8-13,
01-00603-0000-00002-0000-C-0410,
01-0AVB-0000-00002-0000-C-0410,
01-00603-0000-00002-0000-BFB-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 JOE JACKSON L 555 EASTERN AVE BALLSTON SPA,NY 12020 200800059632500 412001216.41-1-11.2 MICHEAL JORDAN 555 YELLOW AVE BALLSTON SPA,NY 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,NY 12020 200800065014500 412001216.55-1-8 BILLY RODGER LIL JOSEPH A JR
答案 0 :(得分:0)
我觉得你很亲密。上面示例代码中的所有宗地编号前面都有一个15位数字,因此您可以执行以下操作:
$pattern = '/\d{15} [\dA-Z.\-]{9,30}/';
或者如果你想要的只是第二部分:
$pattern = '/\d{15} ([\dA-Z.\-]{9,30})/';
这种模式可以避免像你正在使用的模式那样意外地抓取拉链码。