RegEx (?) & # 8212; ¿Cómo analizar los códigos postales fuera del texto?
Pregunta
Tengo un archivo que contiene una mezcla de ciudades, estados y códigos postales. Ejemplo:
Munson 11010 Shelter Island Heights. . . .. 11965 Brentwood 11717 Halesite 11743
Necesito tomar todos los códigos postales de ese texto. Son solo 5 dígitos (no 5 + 4), y no hay otros números además de las cremalleras. Parece algo bastante sencillo de expresiones regulares, pero no tengo ni idea de cómo hacer la expresión.
Conozco algunos PHP, así que ese es mi lenguaje preferido, si es posible. Idealmente, me gustaría que muestre la salida 1-zip-por-línea para poder copiar / pegar en algo como Excel.
¡Gracias por cualquier ayuda!
Solución
El siguiente código debe enviarlo en la dirección correcta:
<?php
$str = 'Munson 11010 Shelter Island Heights. . . .. 11965 Brentwood 11717 Halesite 11743 ';
preg_match_all("/\d{5}/", $str, $matches);
print_r($matches);
?>
Otros consejos
preg_match_all('[^0-9]([0-9]{5})[^0-9]', $input, $out);
foreach($out as $val)
echo $val[1] . "\n";
¡Genial! Muchas gracias. Esto es lo que terminé usando:
preg_match_all("/\d{5}/", $input, $matches);
foreach($matches[0] as $zip){
echo $zip.'<br/>';
};