Regulární výrazy (anglicky "regular expressions", často zkracováno jako regex) představují mocný nástroj pro práci s textem. Umožňují vyhledávání, nahrazování, analýzu a manipulaci s textovými řetězci na základě definovaných vzorů. V Pythonu se pro práci s regulárními výrazy často používá modul re
, který nabízí širokou škálu funkcí a možností. V tomto článku se podíváme na základní použití tohoto modulu.
Základní použití
Prvním krokem při používání regulárních výrazů v Pythonu je import modulu re
.
import re
Vyhledávání v textu
Pro vyhledání prvního výskytu vzoru v textu používáme funkci re.search()
. Tato funkce vrací objekt typu Match
, pokud je vzor nalezen, nebo None
, pokud vzor v textu není.
text = "Python je skvělý jazyk"
vzor = "skvělý"
vysledek = re.search(vzor, text)
if vysledek:
print("Nalezeno!")
else:
print("Nenalezeno.")
Nahrazování textu
Pro nahrazení všech výskytů vzoru v textu používáme funkci re.sub()
.
nahrazeny_text = re.sub("skvělý", "úžasný", text)
print(nahrazeny_text)
Rozdělení textu
Funkce re.split()
umožňuje rozdělit text podle vzoru. To je užitečné například pro rozdělení textu na slova nebo odstranění bílých znaků.
slova = re.split("\s+", "Python je skvělý jazyk")
print(slova)
Kompilace vzorů
Pro zvýšení efektivity lze regulární výrazy předkompilovat do objektu Pattern
pomocí funkce re.compile()
. Tento objekt pak může být použit opakovaně pro vyhledávání nebo nahrazování.
vzor = re.compile("skvělý")
vysledek = vzor.search(text)
if vysledek:
print("Nalezeno!")
Pokročilé vzory
Regulární výrazy mohou být velmi složité a umožňují definovat komplexní pravidla pro vyhledávání a manipulaci s textem. Zde jsou některé příklady pokročilejších konstrukcí:
.
(tečka) odpovídá jakémukoli znaku kromě nového řádku
*
(hvězdička) označuje nula nebo více opakování předcházejícího znaku
+
(plus) označuje jedno nebo více opakování předcházejícího znaku
?
(otazník) označuje nula nebo jedno opakování předcházejícího znaku
[...]
(hranaté závorky) definují množinu znaků, které mohou na daném místě stát
(...)
(kulaté závorky) slouží pro definování skupin, které lze poté v textu referencovat nebo použít pro další manipulaci
Práce s regulárními výrazy vyžaduje praxi a důkladné testování, ale jedná se o nesmírně užitečný nástroj pro každého, kdo pracuje s textem v Pythonu.