Čo je to regulárny výraz?
Predtým, ako sa posunieme k praktickým príkladom, musíme vedieť, čo to regulárny výraz v skutočnosti je. Regulárny výraz je postupnosť znakov, ktorá definuje štruktúru vstupu alebo vyhľadávacieho vzoru. Predstavte si, že zadáte e-mail alebo heslo na nejaký náhodný web, ako je Facebook, Twitter alebo Microsoft. Skúste to uviesť zle a nesprávne myslím tým, že idete proti ich konvencii. Jednoznačne vás upozorní na tieto chyby. Nebude vám umožnené prejsť na ďalší krok, kým sa váš vstup nezhoduje so vzorom, ktorý nastavili v backende. Tento konkrétny vzor, ktorý vás obmedzuje v ukladaní akýchkoľvek ďalších alebo irelevantných informácií, sa nazýva regulárny výraz alebo regulárny výraz.
Regulárne výrazy v Pythone
Regulárne výrazy nehrajú v pythone inú úlohu ako v iných programovacích jazykoch. Python obsahuje modul re ktorá poskytuje úplnú podporu pre použitie regulárnych výrazov. Kedykoľvek sa zadajú nevhodné alebo neporovnateľné informácie alebo dôjde k akejkoľvek chybe, dôjde k tomuto re modul to zachytí ako výnimku, ktorá nakoniec pomôže vyriešiť požadované problémy.
Regulárne výrazy
K dispozícii je veľa znakov napísaných v poradí, ktoré vytvára špecifický vzor regulárneho výrazu. Okrem riadiacich znakov, (+ ? . * ^ $ () [] | \), všetky postavy sa zhodujú. Riadiacim znakom je však možné uniknúť predpísaním spätnej lomky.
Nasleduje tabuľka, ktorá obsahuje vzor a popis ich práce v pythone.
Vzor | Popis | |
[Pp] ython | Zhoda „Python“ alebo „python“ | |
Kúpa [Ee] | Zhoda „TubE“ alebo „Tube“ | |
[aeiou] | Priraďte ľubovoľnú samohlásku s malými písmenami | |
[0-9] | Priraďte ľubovoľnú číslicu od 0 do 9 | |
[a-z] | Priraďte akékoľvek malé písmeno ASCII | |
[A-Z] | Priraďte ľubovoľné veľké písmeno ASCII | |
[a-zA-Z0-9] | Priraďte všetky malé a veľké písmená ASCII alebo číslicu od 0 do 9 | |
[^ aeiou] | Priraďte k čomukoľvek okrem malých samohlások | |
[^ 0-9] | Priraďte k čomukoľvek okrem číslice | |
. | Priraďte ľubovoľný znak okrem nového riadku | |
\ d | Priraďte ľubovoľnú číslicu: [0-9] | |
\ D | Zhoda s nečíselkou: [^ 0-9] | |
\ s | Priraďte biele medzery | |
\ S | Zhoda nebielych medzier | |
\ A | Zhoda začiatku reťazca | |
\ Z | Zhoda konca reťazca | |
\ w | Zhoda slovných znakov | |
\ W | Zhoda neslovných znakov | |
[…] | Priraďte ľubovoľný znak v zátvorkách | |
[^…] | Priraďte ľubovoľný jeden znak, ktorý nie je uvedený v zátvorkách | |
$ | Zarovnajte koniec riadku | |
^ | Porovnajte začiatok riadku |
Funkcie hľadania a hľadania v Pythone
Teraz si ukážeme dva príklady dvoch zabudovaných funkcií, ktoré existujú v pythone. Jeden je zhoda a druhý je funkcia vyhľadávania. Obidva tieto parametre majú rovnaké parametre:
- Vzor - Regulárny výraz, ktorý sa má zhodovať alebo hľadať.
- String - Reťazec, ktorý by sa mohol zhodovať alebo hľadať vo vete alebo vo vstupe.
Predtým, ako sa vrhneme na ukážkovú časť, je tu ešte jedna vec, ktorú musíte vedieť. Na získanie zodpovedajúcich skupín je možné použiť dve metódy:
- skupiny ()
- skupina (počet = 0,1,2…)
Čo sa stane, je to, že keď sa použijú funkcie zhody alebo vyhľadávania, vytvorí sa podskupiny všetkých súvisiacich vzorov nájdených v reťazcoch a štruktúruje sa na pozíciách od 0. V nasledujúcom príklade získate lepšiu predstavu.
Funkcia zhody (príklad)
V nasledujúcom príklade sme vzali zoznam, v ktorom sme použili regulárny výraz, ktorý kontroluje slová začínajúce písmenom „a“ a vyberie ich, iba ak obe slová začínajú rovnakým písmenom i.e.: „a“.
import rearraylist = [„ovplyvnenie náklonnosti“, „akt náklonnosti“, „programovanie náklonnosti“]
pre prvok v zozname polí:
k = re.zhoda („(a \ w +) \ W (g \ w +)“, prvok)
ak k:
tlačiť ((z.skupiny ()))
Výkon:
('náklonnosť', 'ovplyvnenie')('náklonnosť', 'čin')
Tretí prvok v zozname nebude braný do úvahy, pretože sa nezhoduje s regulárnym výrazom, ktorý hovorí, že obe slová by mali začínať zámenom „a“.
Funkcia vyhľadávania (príklad)
Táto funkcia sa líši od zhody. Vyhľadávanie prehľadáva celú vetu, zatiaľ čo zhoda nie. V nasledujúcom príklade je metóda vyhľadávania úspešná, ale funkcia zhody nie.
import reVstup = „DocumentationNew“
v = re.hľadať („(ta.*) ”, Vstup)
ak v:
tlač („výsledok:“ v.skupina (1))
Výkon:
výsledok: tationNew'ta.* „znamená čokoľvek po„ ta “, čo nám dáva výsledok„ tationNew “z hľadaného vstupu„ DocumentationNew “.
Záver
Regulárne výrazy sú zásadné pre všetkých vývojárov softvéru a teraz môžete ľahko zistiť, ako používať regulárne výrazy v programovacom jazyku Python.