Modul Regulární výrazy(RE) určuje množinu řetězců(vzor), která mu odpovídá.
Pro pochopení analogie RE jsou metaznaky užitečné, důležité a budou se používat ve funkcích modulu re.
Metaznaků je celkem 14 a budou probírány tak, jak budou následovat do funkcí:

\ Used to drop the special meaning of character following it (discussed below) Represent a character class^ Matches the beginning$ Matches the end. Matches any character except newline? Matches zero or one occurrence.| Means OR (Matches with any of the characters separated by it.* Any number of occurrences (including 0 occurrences)+ One or more occurrences{} Indicate number of occurrences of a preceding RE to match.() Enclose a group of REs
  • Funkce compile()
    Regulární výrazy jsou zkompilovány do objektů vzorů, které mají metody pro různé operace, jako je hledání shody vzorů nebo provádění záměn řetězců.
Python

import re
p = re.compile('')
print(p.findall("Aye, said Mr. Gibenson Stark"))



Výstup:


Pochopení výstupu:
První výskyt je „e“ ve slově „Aye“ a ne „A“, protože se rozlišují malá a velká písmena.
Další výskyt je ‚a‘ ve slově „said“, pak ‚d‘ ve slově „said“, následuje ‚b‘ a ‚e‘ ve slově „Gibenson“, poslední ‚a‘ se shoduje se slovem „Stark“.
Metaznak zpětného lomítka ‚\‘ má velmi důležitou roli, protože signalizuje různé sekvence. Pokud má být zpětné lomítko použito bez svého zvláštního významu jako metaznak, použijte’\\‘

Třída Set bude odpovídat jakémukoli bílému znaku, ‚,‘, nebo,‘.‘ .

Výstup:


Výstup:


Python

import re
p = re.compile('ab*')
print(p.findall("ababbaabbb"))



Výstup:


Pochopení výstupu:
Náš RE je ab*, které ‚a‘ doprovází libovolný počet ‚b‘, počínaje 0.
Výstup ‚ab‘, je platný, protože jedno ‚a‘ doprovází jedno ‚b‘.
Výstup „abb“ je platný, protože k jednomu „a“ jsou připojeny 2 „b“.
Výstup „a“ je platný, protože k jednomu „a“ je připojeno 0 „b“.
Výstup ‚abbb‘, je platný, protože jednoduché ‚a‘ je doprovázeno 3 ‚b‘.

  • Funkce split()
    Rozdělí řetězec podle výskytu znaku nebo vzoru, po nalezení tohoto vzoru jsou zbývající znaky z řetězce vráceny jako součást výsledného seznamu.
    Syntaxe :
 re.split(pattern, string, maxsplit=0, flags=0)

První parametr, vzor označuje regulární výraz, řetězec je zadaný řetězec, ve kterém se bude hledat vzor a ve kterém dojde k rozdělení, maxsplit, pokud není zadán, považuje se za nulu ‚0‘, a pokud je zadána jakákoli nenulová hodnota, pak dojde nejvýše k takovému počtu rozdělení. Pokud je maxsplit = 1, pak se řetězec rozdělí pouze jednou, výsledkem bude seznam délky 2. Příznaky jsou velmi užitečné a mohou pomoci zkrátit kód, nejsou nutnými parametry, např: flags = re.IGNORECASE, Při tomto dělení se bude ignorovat velikost písmen.

Výstup:


Výstup:


  • Funkce sub()
    Syntaxe:
 re.sub(pattern, repl, string, count=0, flags=0)

Sub ve funkci znamená SubString, v zadaném řetězci(3. parametr) se hledá určitý vzor regulárního výrazu a po nalezení vzoru se podřetězec nahradí repl(2. parametr), count kontroluje a udržuje počet výskytů.

Výstup

S~*ject has ~*er booked alreadyS~*ject has Uber booked alreadyS~*ject has Uber booked alreadyBaked Beans & Spam
  • Funkce subn()
    Syntaxe:
 re.subn(pattern, repl, string, count=0, flags=0)

subn() je ve všech ohledech podobná sub(), kromě způsobu poskytování výstupu. Vrací tuple s počtem všech nahrazení a novým řetězcem, nikoliv pouze řetězec.

Výstup

('S~*ject has Uber booked already', 1)('S~*ject has ~*er booked already', 2)Length of Tuple is: 2S~*ject has ~*er booked already
  • Funkce escape()
    Syntaxe:
re.escape(string)

Vrátí řetězec se všemi nealfanumerickými znaky se zpětným lomítkem, což je užitečné, pokud chcete porovnat libovolný literální řetězec, který může obsahovat metaznaky regulárního výrazu.

Python

.

import re
print(re.escape("This is Awseome even 1 AM"))
print(re.escape("I Asked what is this , he said \t ^WoW"))



Výstup

This\ is\ Awseome\ even\ 1\ AMI\ Asked\ what\ is\ this\ \,\ he\ said\ \ \ \^WoW

Na tomto článku se podílel Piyush Doorwar. Pokud se vám GeeksforGeeks líbí a chtěli byste přispět, můžete také napsat článek pomocí stránky contribute.geeksforgeeks.org nebo poslat svůj článek na adresu [email protected]. Uvidíte, jak se váš článek objeví na hlavní stránce GeeksforGeeks, a pomůžete tak ostatním geekům.
Pište prosím komentáře, pokud zjistíte, že je něco špatně, nebo se chcete podělit o další informace k výše probíranému tématu.

Pozor geek! Posilte své základy s kurzem Python Programming Foundation a naučte se základy.

Pro začátek přípravy na pohovor Posilte své koncepty datových struktur s kurzem Python DS.

Article Tags :

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.