RegEx(?) - 如何解析文本中的邮政编码?

时间:2009-01-22 15:14:24

标签: regex zipcode

我有一个包含各种城市,州和邮政编码的文件。例如:

  

Munson 11010 Shelter Island Heights。 。 。 .. 11965   布伦特伍德11717 Halesite 11743

我需要从该文本中获取所有邮政编码。它们只有5位数(没有5 + 4),除了拉链之外没有其他数字。这似乎是一个相当简单的正则表达式,但我根本不知道如何表达。

我知道一些PHP,如果可能的话,这是我的首选语言。理想情况下,我希望它显示输出1-zip-per-line,以便我可以复制/粘贴到Excel之类的东西。

感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

preg_match_all('[^0-9]([0-9]{5})[^0-9]', $input, $out);
foreach($out as $val)
    echo $val[1] . "\n";

答案 1 :(得分:0)

以下代码应该向您发送正确的方向:

<?php
$str = 'Munson 11010 Shelter Island Heights. . . .. 11965 Brentwood 11717 Halesite 11743 ';

preg_match_all("/\d{5}/", $str, $matches);

print_r($matches);
?>

答案 2 :(得分:0)

大!非常感谢 - 这就是我最终使用的内容:

preg_match_all("/\d{5}/", $input, $matches);

foreach($matches[0] as $zip){
    echo $zip.'<br/>';
    };