1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Úvod do zpracování přirozeného jazyka v Pythonu

Connected

cvičení

Procvičování regulárních výrazů: re.split() a re.findall()

Teď si vyzkoušíš psaní regulárních výrazů pro porovnávání číslic, řetězců a nealfanumerických znaků. Nejdřív si prohlédni proměnnou my_string – vytiskni ji v IPython Shellu, aby sis udělal/a představu o tom, jak nejlépe jednotlivé kroky provést.

Poznámka: Doporučuje se prefixovat vzory regulárních výrazů písmenem r, aby byly interpretovány správně. Jinak může docházet k problémům s escape sekvencemi. Například "\n" v Pythonu označuje nový řádek – pokud ale použiješ prefix r, bude interpretováno jako raw string "\n", tedy znak "\" následovaný znakem "n", nikoli jako nový řádek.

Modul regulárních výrazů re je už naimportovaný.

Pamatuj si z videa, že v knihovně regex se vždy předává nejdříve vzor (pattern), a teprve pak řetězec (string).

Pokyny

100 XP
  • Rozděl my_string na jednotlivé věty. Postupuj takto:
    • Vytvoř vzor sentence_endings, který bude odpovídat ukončením vět (.?!).
    • Použij re.split() k rozdělení my_string podle tohoto vzoru a výsledek vytiskni.
  • Najdi a vytiskni všechna slova začínající velkým písmenem v my_string – vytvoř vzor capitalized_words a použij re.findall().
    • Vzpomínáš na vzor [a-z] z videa pro porovnávání skupin malých písmen? Uprav ho tak, aby odpovídal skupinám velkých písmen.
  • Vytvoř vzor spaces pro porovnání jedné nebo více mezer ("\s+") a použij re.split() k rozdělení my_string podle tohoto vzoru tak, aby zůstala zachována veškerá interpunkce. Výsledek vytiskni.
  • Najdi všechny číslice v my_string – vytvoř vzor digits ("\d+") a použij re.findall(). Výsledek vytiskni.