Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Preg_match kod pocztowy
Forum PHP.pl > Forum > PHP
melior
Witam,

Mam kod, który wyszukuje mi kod pocztowy w formacie XX-XXX
  1. $result = preg_match("(\b\d{2}-\d{3}\b)", $text, $matches);

Chciałbym jednak zmodyfikować go by wyszukiwał też kod pocztowy w formacie XX - XXX

Anyhelp?
thek
Ustaw dodatkowo, że pomiędzy blokami cyfr a myślnikiem mogła(ale niekoniecznie musiała) wystąpić spacja. Przyda się znak zapytania, choć to nie jedyny sposób na rozwiązanie tego.
sazian
(\b\d{2}\s*-\d{3}\b)
chociaż ja bym dał po prostu trim
markonix
Cytat(sazian @ 5.11.2010, 12:19:05 ) *
chociaż ja bym dał po prostu trim

Z tym, że trim usuwa spacje z początku i końca stringu.
Jeśli już to raczej str_replace i usunięcie wszystkich spacji.

Zwykle te dane potem idą do bazy, a tam lepiej mieć wszystko w jednym formacie.
kiler129
Ja jednak podszedlbym do zagadnienia inaczej. Dobrze by było aby teren nie przyjmował kodów typu 99-999 winksmiley.jpg
Ja w swoich projektach używam klasy opartej na tych plikach http://www.mephir.net.pl/resources/kody_pocztowe
melior
Dzięki za odpowiedź.

@sazian: zmodyfikowałem nieco Twój kod, bo działał w 50% smile.gif
  1. (\b\d{2}\s*-\s*\d{3}\b

Anyway big thanks smile.gif

$trim rzeczywiście nie zadziała się w tym przypadku (choć i tak przepuszczam przez niego tekst). Str_replace dałby radę, ale szkoda dodatkowej pracy, gdy tekst jest dłuższy.

@kiler129:
Dzięki za linka, może się przyda smile.gif Tutaj jednak nie będzie dla niego większego zastosowania. Parsuję teksty, gdzie z założenia są podane poprawne kody pocztowe winksmiley.jpg W każdym razie planuję jeszcze wdrożyć system tłumaczący kod -> nazwa miejscowości, gdyby przypadkiem skrypt nie wyłapał z tekstu nazwy miasta, czy wsi.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.