Co je regulární výraz?
Než přejdeme k praktickým příkladům, musíme vědět, co regulární výraz ve skutečnosti je. Regulární výraz je posloupnost znaků, která definuje strukturu vstupu nebo vyhledávacího vzoru. Představte si, že zadáte e-mail nebo heslo na nějaký náhodný web, jako je Facebook, Twitter nebo Microsoft. Zkuste to uvést špatně a špatně, myslím tím zkusit jít proti jejich konvencím. Jasně vás na tyto chyby upozorní. Nebude vám umožněno přejít k dalšímu kroku, dokud váš vstup nebude odpovídat vzoru, který nastavili v backendu. Tento konkrétní vzor, který vás omezuje v zadávání jakýchkoli dalších nebo irelevantních informací, se nazývá regulární výraz nebo regulární výraz.
Regulární výrazy v Pythonu
Regulární výrazy nehrají v pythonu žádnou jinou roli jako v jiných programovacích jazycích. Python obsahuje modul re který poskytuje plnou podporu pro používání regulárních výrazů. Pokaždé, když jsou zadány nevhodné nebo nesrovnatelné informace nebo dojde k jakémukoli druhu chyby, toto re modul to zachytí jako výjimku, která nakonec pomůže vyřešit požadované problémy.
Regulární výrazy
K dispozici je spousta znaků napsaných v pořadí, které vytváří specifický vzor regulárního výrazu. Kromě kontrolních znaků, (+ ? . * ^ $ () [] | \), všechny postavy se shodují. Řídící znaky však lze uniknout přepsáním zpětného lomítka.
Následuje tabulka, která se skládá ze vzoru a popisu jejich práce v pythonu.
Vzor | Popis | |
[Pp] ython | Porovnejte výraz „Python“ nebo „python“ | |
Vana [Ee] | Porovnejte „TubE“ nebo „Tube“ | |
[aeiou] | Porovnejte jakoukoli malou samohlásku | |
[0-9] | Porovnejte libovolnou číslici mezi 0 a 9 | |
[a-z] | Shodujte se s malými písmeny ASCII | |
[A-Z] | Porovnejte jakékoli velké písmeno ASCII | |
[a-zA-Z0-9] | Shodujte se s malými a velkými písmeny ASCII nebo číslice od 0 do 9 | |
[^ aeiou] | Spojte cokoli kromě malých samohlásek | |
[^ 0-9] | Přiřaďte cokoli kromě číslice | |
. | Přiřaďte libovolný znak kromě nového řádku | |
\ d | Porovnat libovolnou číslici: [0-9] | |
\ D | Porovnat necifernou číslici: [^ 0-9] | |
\ s | Shoda bílých mezer | |
\ S | Shoda ne-bílých mezer | |
\A | Porovnat začátek řetězce | |
\ Z | Odpovídá konci řetězce | |
\ w | Shoda slovních znaků | |
\ W | Porovnávejte neslovné znaky | |
[…] | Přiřaďte libovolný znak v závorkách | |
[^…] | Přiřaďte libovolný znak, který není v závorkách | |
$ | Porovnejte konec řádku | |
^ | Porovnejte začátek řádku |
Funkce vyhledávání a hledání v Pythonu
Nyní uvidíme dva příklady se dvěma vestavěnými funkcemi, které existují v pythonu. Jeden je shoda a druhý je vyhledávací funkce. Oba mají stejné parametry, které jsou následující:
- Vzor - Regulární výraz, který má být porovnán nebo prohledán.
- Tětiva - Řetězec, který by se shodoval nebo hledal ve větě nebo ve vstupu.
Než skočíme do příkladu, zde je další věc, kterou musíte vědět. K získání odpovídajících skupin lze použít dvě metody:
- skupiny()
- skupina (počet = 0,1,2…)
Co se stane, je to, že když se použijí funkce shody nebo vyhledávání, vytvoří se podskupiny všech souvisejících vzorů nalezených v řetězcích a strukturuje je na pozicích od 0. V následujícím příkladu získáte lepší představu.
Funkce shody (příklad)
V následujícím příkladu jsme vzali seznam, ve kterém jsme použili regulární výraz, který kontroluje slova začínající písmenem 'a' a vybere pouze v případě, že obě slova začínají stejným písmenem i.E.: 'a'.
import rearraylist = [“affection Affect”, “Affection Act”, “Affection Programming”]
pro prvek v arraylistu:
k = re.shoda („(a \ w +) \ W (g \ w +)“, prvek)
pokud k:
tisk ((z.skupiny()))
Výstup:
('náklonnost', 'ovlivnit')('náklonnost', 'čin')
Třetí prvek v seznamu nebude brán v úvahu, protože neodpovídá regulárnímu výrazu, který říká, že obě slova by měla začínat písmenem „a“.
Funkce vyhledávání (příklad)
Tato funkce se liší od shody. Hledání prohledává celou větu, zatímco shoda ne. V následujícím příkladu je metoda hledání úspěšná, ale funkce shody nikoli.
import reVstup = „DocumentationNew“
v = re.hledat („(ta.*)", Vstup)
pokud v:
tisk („výsledek:“ v.skupina (1))
Výstup:
výsledek: tationNew'ta.* „znamená cokoli za„ ta “, což nám dává výsledek„ tationNew “z hledaného vstupu„ DocumentationNew “.
Závěr
Regulární výrazy jsou zásadní pro všechny vývojáře softwaru a nyní můžete snadno vidět, jak používat regulární výrazy v programovacím jazyce Python.