Skip to content

Wyrażenia regularne w Javie

Wyrażenia regularne w Javie – to kolejny temat, który przerabiamy. Temat niby jest prosty, ale jednak sprawiający wiele problemów. Prezentuję więc podstawowe elementy i wyrażenia regularne.

Wyrażenia regularne – czym są?

Na początek wyjaśnienie – czym są wyrażenia regularne. To szablony, w których opisujemy łańcuch znaków. W taki sposób możemy weryfikować, czy to co wpisuje użytkownik to to, co chcemy, aby wpisał. Na przykład – kod pocztowy lub adres e-mail, które mają część elementów stałych (kod pocztowy to dwie liczby, myślnik i trzy liczby). Takie wyrażenia można wykorzystać we wszystkich językach programowania.

Wyrażenia regularne pozwalają zweryfikować dane wejściowe od użytkownika. W Javie do ich obsługi wykorzystywane są klasy Pattern i Matcher [ten temat omówię w jednym z kolejnych wpisów]. Co istotne w Javie wyrażenia zapisujemy jako Stringi.

Regex – konstrukcja

Najprostszym wyrażeniem może być tekst abc. Jednakże, wtedy właściwym tekstem wejścia będzie… abc. Żadna inna treść nie przejdzie walidacji. Do budowy większych wyrażeń wykorzystuje się kwantyfikatory. Oto ich dokładne znaczenia:

*zero lub wiu0119cej wystu0105pieu0144 znaku poprzedzaju0105cego
+jedno lub wiu0119cej wystu0105pieu0144 znaku poprzedzaju0105cego
?zero lub jedno wystu0105pienie znaku poprzedzaju0105cego
{n}liczba powtu00f3rzeu0144 znaku
{n, m}od ilu do ilu powtu00f3rzeu0144 znaku
{n, }minimalnie, ile razy znak musi siu0119 powtu00f3rzyu0107
{ , n}maksymalnie, ile razy znak mou017ce byu0107 powtu00f3rzony

Kwantyfikatory zawsze odnoszą się do znaku poprzedzającego (także spacji). Ważne jest także wykorzystanie zakresów i grup znaków, które pozwalają nam powtarzać większą liczbę znaków/schematów.

Zakres to nic innego jak grupa znaków. Umieszczamy je w nawiasach kwadratowych. Mogą tu się pojawić litery, liczby, ale też znaki specjalne. Co istotne w Javie przed znakiem specjalnym musi pojawić się backslash (hint: Inteliji IDE robi to za nas).

[abc]Dowolna litera z wymienionych
[a-z]Dowolna litera z przedziau0142u a-z
[a-zA-Z]Dowolna litera z przedziau0142u a-z lub A-Z
[.]Dowolny znak

Przykłady wyrażeń regularnych

Kod pocztowy: 10 – 600  -> [0-9][0-9]-[0-9][0-9][0-9]

Adres email: [_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*.([a-zA-Z]{2,}){1}

***

Wszystkie teksty poświęcone nauce programowania znajdziesz TUTAJ.

 

Published inDEV