Košík je prázdný

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.