Kas yra taisyklingoji išraiška?
Prieš pereidami prie praktinių pavyzdžių, turime žinoti, kas iš tikrųjų yra taisyklingoji išraiška. Reguliarioji išraiška yra simbolių seka, apibrėžianti įvesties ar paieškos struktūros struktūrą. Įsivaizduokite, kad įvedėte el. Laišką ar slaptažodį kokioje nors atsitiktinėje svetainėje, pavyzdžiui, „Facebook“, „Twitter“ ar „Microsoft“. Pabandykite tai klaidingai pasakyti, o neteisingai turiu omenyje priešintis jų konvencijai. Tai aiškiai nurodys tas klaidas jums. Jums nebus leista pereiti prie kito veiksmo, kol jūsų įvestis neatitiks šablono, kurį jie nustatė vidinėje pusėje. Šis konkretus modelis, kuris neleidžia jums pateikti jokios papildomos ar nesusijusios informacijos, yra žinomas kaip regex arba reguliarioji išraiška.
Reguliarūs posakiai „Python“
Reguliarūs posakiai neturi jokio skirtingo vaidmens python'e, kaip ir kitose programavimo kalbose. „Python“ yra modulis re kuri teikia visapusišką paramą reguliarių posakių naudojimui. Kiekvieną kartą, kai įvedama netinkama ar neprilygstama informacija arba įvyksta kokia nors klaida, tai re modulis tai sužinos kaip išimtį, kuri galiausiai padės išspręsti reikalingas problemas.
Reguliariųjų išraiškų modeliai
Yra daugybė simbolių, parašytų seka, kuri sukuria tam tikrą taisyklingos išraiškos modelį. Išskyrus kontrolinius simbolius, (+ ? . * ^ $ () [] | \), visi veikėjai sutampa su savimi. Tačiau kontrolinių ženklų galima išvengti perrašant atgalinį brūkšnį.
Toliau pateikiama lentelė, kurią sudaro jų darbo „Python“ schema ir aprašas.
Raštas | apibūdinimas | |
[Pp] ython | Atitinka „Python“ arba „python“ | |
Kubilas [Ee] | Rungtynės „TubE“ arba „Tube“ | |
[aeiou] | Derinkite bet kurią mažųjų raidžių balsę | |
[0–9] | Suderinkite bet kurį skaičių nuo 0 iki 9 | |
[a-z] | Suderinkite bet kokias mažąsias ASCII raides | |
[A-Z] | Suderinkite bet kokią didžiųjų raidžių ASCII raidę | |
[a-zA-Z0-9] | Sutapkite bet kokias mažąsias ir didžiąsias ASCII raides arba skaitmuo nuo 0 iki 9 | |
[^ aeiou] | Derinkite bet ką, bet ne mažąsias balses | |
[^ 0–9] | Pritaikykite bet ką, bet ne skaitmenį | |
. | Suderinkite bet kokį simbolį, išskyrus naują eilutę | |
\ d | Suderinkite bet kurį skaitmenį: [0–9] | |
\ D | Sutapkite be skaitmenų: [^ 0-9] | |
\ s | Derinkite baltąsias erdves | |
\ S | Suderinkite ne baltąsias erdves | |
\ A | Rungtynių eilutės pradžia | |
\ Z | Rungtynių pabaiga | |
\ w | Derinti žodžių simbolius | |
\ W | Derinkite ne žodžių simbolius | |
[…] | Sulenkite bet kurį atskirą simbolį skliausteliuose | |
[^…] | Suderinkite bet kurį atskirą simbolį, kuris nėra skliausteliuose | |
$ | Atitinka eilutės pabaigą | |
^ | Atitinka eilutės pradžią |
Rungtynių ir paieškos funkcijos „Python“
Dabar mes pamatysime du pavyzdžius su dviem įmontuotomis funkcijomis, egzistuojančiomis pitone. Vienas yra atitikimas, o kitas - paieškos funkcija. Abu jie naudoja tuos pačius parametrus, kurie yra šie:
- Raštas - Reguliarus posakis, kurį reikia suderinti arba ieškoti.
- Stygos - Eilutė, kuri būtų suderinta ar ieškoma sakinyje ar įvestyje.
Prieš pereinant prie pavyzdinės dalies, reikia žinoti dar vieną dalyką. Norint gauti derančias grupes, galima naudoti du metodus:
- grupės ()
- grupė (skaičius = 0,1,2…)
Atsitinka taip, kad kai naudojamos atitikimo arba paieškos funkcijos, jis sukuria visų susijusių eilučių rastų modelių pogrupius ir struktūrizuoja juos pozicijose nuo 0. Norėdami sužinoti geresnę idėją, žiūrėkite toliau pateiktą pavyzdį.
Rungtynių funkcija (pavyzdys)
Šiame pavyzdyje mes paėmėme sąrašą, kuriame naudojome reguliarią išraišką, kuri tikrina žodžius, prasidedančius raide „a“, ir pasirinks tik tuo atveju, jei abu žodžiai prasidės ta pačia i raide.e.: „a“.
importo rearraylist = [„meilės poveikis“, „meilės aktas“, „meilės programavimas“]
elementui masyvų sąraše:
k = re.atitikimas („(a \ w +) \ W (g \ w +)“, elementas)
jei k:
spausdinti ((z.grupės ()))
Išvestis:
(„meilumas“, „afektas“)(„meilumas“, „poelgis“)
Trečiasis sąrašo elementas nebus laikomas, nes jis neatitinka regex, kuriame sakoma, kad abu žodžiai turėtų prasidėti „a“.
Paieškos funkcija (pavyzdys)
Ši funkcija skiriasi nuo atitikties. Paieškos metu nuskaitomas visas sakinys, o atitikties - ne. Šiame pavyzdyje paieškos metodas yra sėkmingas, bet atitikties funkcija - ne.
importo reĮvestis = „DocumentationNew“
v = re.ieškoti („(ta.*) “, Įvestis)
jei v:
spausdinti („rezultatas:“ v.grupė (1))
Išvestis:
rezultatas: tationNew'ta.* “reiškia bet ką po„ ta “, kuris mums suteikia rezultatą„ tationNew “iš ieškomos įvesties„ DocumentationNew “.
Išvada
Reguliariosios išraiškos yra labai svarbios visiems programinės įrangos kūrėjams, ir dabar jūs galite lengvai pamatyti, kaip naudoti reguliariąsias išraiškas „Python“ programavimo kalba.