如何提取复杂的地块编号&使用PHP的字符串

时间:2015-09-29 02:10:53

标签: php regex preg-replace preg-match extraction

我想知道使用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

1 个答案:

答案 0 :(得分:0)

我觉得你很亲密。上面示例代码中的所有宗地编号前面都有一个15位数字,因此您可以执行以下操作:

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

或者如果你想要的只是第二部分:

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

这种模式可以避免像你正在使用的模式那样意外地抓取拉链码。