Regulární výrazy v Javě

Pomocí regulárních výrazů definujeme vzory hledání pro řetězce. Vzor může být jediný znak, přesný řetězec, nebo složitý výraz obsahující speciální znaky.

Regulární výraz Popis
. Jakýkoliv znak
* Výskyt 0 nebo vícekrát
+ Výskyt 1 nebo vícekrát
? Výskyt 0 nebo jedenkrát
^ Začátek řádky (^A – začátek řádku musí začínat na A)
$ Konec řádky (z$ – řádek musí končit na z)
[] Definice možných výskytů ([123] – obsahuje 1, 2 nebo 3)
{} Počet možných výskytů ({5,7} – vyskytuje se alespoň 5x a maximálně 7x)
() Seskupení výrazů
| Nebo (a|b – a nebo b)
?! Negace (a?!b – a pokud není následováno b)
(?i) Regulární výraz není citlivý na malá a velká písmena (pozor na písmena s diakritikou)
\d Jakékoliv číslo
\D Cokoliv kromě čísla
\s Jakýkoliv bílý znak
\S Cokoliv kromě bílých znaků
\w Písmeno, číslice nebo podtržítko
\W Cokoliv kromě písmena, číslice nebo podtržítka

Java String má následující metody, které jako parametr mají regulární výraz:

string.matches("regex")
string.split("regex")
string.replaceFirst("regex", "replacement")
string.replaceAll("regex", "replacement")

Pro pokročilejší práci s regulárními výrazy se používají třídy Pattern a Matcher.

final String text = "Nějaký text";
final String regex = "Regulární výraz";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(text);
matcher.find()