Hledáte kvalitní a spolehlivý webhosting? Vyzkoušejte Český hosting.
Webhosting 1000 Kč/rok: 2GB, PHP 4 i 5, neom. subdomén a emailů, 10 databází  

Regulární výraz pro adresu

Níže uvedený regulární výraz využijete, pokud chcete kontrolovat poštovní adresu, respektive zápis jména ulice následovaný čísem orientačním ev. číslem popisným a budete tedy za platný vstup považovat například Nám. 28. října 12/345, Pražská 12, U Plynárny 8c apod.

V tom případě můžete použít regulární výraz ^(.*[^0-9]+) (([1-9][0-9]*)/)?([1-9][0-9]*[a-cA-C]?)$. Tento regulární výraz sestává ze čtyř subvýrazů a tudíž, nejenže otestujete adresu, ale také získáte jednotlivé části (jméno ulice, čislo orientační ev. i číslo popisné, pokud jsou uvedena obě a oddělena lomítkem).

Uvedu dva příklady:

  • Pokud je adresa Nám. 28. října 12/345, pak odpovídá
    • 1. subvýrazu řetězec Nám. 28. října
    • 2. subvýrazu řetězec 12/
    • 3. subvýrazu řetězec 12
    • 4. subvýrazu řetězec 345
  • Pokud je adresa U Plynárny 8c, pak odpovídá
    • 1. subvýrazu řetězec U Plynárny
    • 2. subvýrazu prázdný řetězec
    • 3. subvýrazu prázdný řetězec
    • 4. subvýrazu řetězec 8c

Subvýrazy jsou číslovány vždy podle umístění otevírací (levé kulaté) závorky v regulárním výrazu. Detailnější popis a vysvětlení tohoto regulárního výrazu naleznete v článku Regulární výrazy v praxi - subvýrazy. Ačkoliv je článek věnován POSIX regulárním výrazům v PHP, uvedený výraz je shodný s Perl-compatible regulárním výrazem a funguje tedy v PHP (PCRE) i .NETu.