Dopasowanie wyrażenia regularnego do adresów pocztowych

0

Witam,
Czy jakaś doświadczona osoba z wyrażeń regularnych mogła by wskazać błąd, poniweaż ani java ani https://www.debuggex.com/ nie chce mi złapać wyrażenia dla 3 poniższych adresów.

static Adres_Klienta formatuj_Adres(String adres) {
Adres_Klienta tmp = new Adres_Klienta();       

//80-227 GDAÑSK                              DO STUDZIENKI 123B
//83047  PRZYWIDZ                            GDAÑSKA 99
//83000  PRUSZCZ GDANSKI                     UL. TYSIACLECIA 98

String REGEX_Ogolny_ADRESU = "[0-9][0-9][-]?[0-9][0-9][0-9][//s]*[A-Za-zŁłŻżÓóĘęNń]+[//s]*([A-Za-zŁłŻżÓóĘęNń]+)?[//s]*.*";

Pattern pat_OgolnyAdres = Pattern.compile(REGEX_Ogolny_ADRESU);
Matcher mat_Kod_Pocztowy = pat_OgolnyAdres.matcher(adres);

if(mat_Kod_Pocztowy.find()) System.out.print("true");

Dziękuję bardzo.

dodanie znacznika <code class="java"> - Furious Programming

1

"Ñ" to nie "Ń", jak chcesz brać polskie litery pod uwagę to jest jeszcze kilka literek o których zapomniałeś. Dodatkowo popraw formatowanie bo coś się popsuło

0

W pierwszych dwóch adresach masz znak którego nie dodałeś do wyrażenia regularnego Ñ.
W trzecim masz kropkę którą nie obsługujesz w wyrażeniu.

Może coś takiego Ci wystarczy?:

 
String REGEX_Ogolny_ADRESU = "\\d\\d-?\\d\\d\\d\\s*([A-Za-zŁłŻżÓóĘęŃÑń.]*\\s*)*.*";

Poza tym do wyrażeń przydaje się też (łatwiej się połapać):

while (matcher.find()) {
    System.out.print("Start index: " + matcher.start());
    System.out.print(" End index: " + matcher.end() + " ");
    System.out.println(matcher.group());
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1