Mis on regulaarne väljend?
Enne praktiliste näidete poole liikumist peame teadma, mis on regulaarne väljend tegelikult. Tavaväljend on tähemärkide jada, mis määrab sisendi või otsingumustri struktuuri. Kujutage ette, et sisestate mõnele juhuslikule veebisaidile nagu Facebook, Twitter või Microsoft e-posti aadressi või parooli. Proovige seda valesti panna ja vale all mõtlen proovida minna vastuollu nende konventsiooniga. See toob need vead teie jaoks selgelt välja. Teil pole lubatud minna järgmisse sammu enne, kui teie sisestus vastab mustrile, mille nad on taustaprogrammis seadnud. Seda spetsiifilist mustrit, mis piirab igasuguse täiendava või ebaolulise teabe sisestamist, nimetatakse regeksiks või regulaaravaldiseks.
Regulaaravaldised Pythonis
Regulaarsed avaldised ei mängi pythonis teist rolli nagu teistes programmeerimiskeeltes. Python sisaldab moodulit re mis toetab regulaaravaldiste kasutamist täielikult. Iga kord, kui sisestatakse sobimatu või sobimatu teave või ilmneb mis tahes viga, on see re moodul püüab seda erandina, mis lõpuks aitab lahendada vajalikud probleemid.
Regulaaravaldiste mustrid
Saadaval on palju märke, mis on kirjutatud järjestusse, mis teeb kindla regulaaravaldise mustri. Välja arvatud kontrollmärgid, (+ ? . * ^ $ () [] | \), kõik tegelased sobivad iseendaga. Kontrollmärkidest saab aga tagasilöögi ette kirjutades põgeneda.
Järgnevas tabelis on muster ja kirjeldus nende töötamise kohta pythonis.
Muster | Kirjeldus | |
[Pp] ython | Sobitage "Python" või "python" | |
Vann [Ee] | Sobitage "TubE" või "Tube" | |
[aeiou] | Sobib mis tahes väiketähega | |
[0–9] | Sobitage mis tahes arv vahemikus 0 kuni 9 | |
[a-z] | Sobib mis tahes väiketähega ASCII tähega | |
[A-Z] | Sobitage mis tahes suurtähega ASCII täht | |
[a-zA-Z0-9] | Sobitage mis tahes väikeste ja väikeste tähtedega ASCII tähed või number vahemikus 0 kuni 9 | |
[^ aeiou] | Sobitage ükskõik mida, kuid mitte väiketähti | |
[^ 0–9] | Sobitage ükskõik mida, kuid mitte numbrit | |
. | Sobita mis tahes tähemärgiga, välja arvatud uus rida | |
\ d | Sobib mis tahes numbriga: [0–9] | |
\ D | Sobita mittekohaline: [^ 0-9] | |
\ s | Sobitage tühikud | |
\ S | Sobitage mitte-tühikud | |
\ A | Sobita stringi algus | |
\ Z | Sobita stringi lõpp | |
\ w | Sobita sõnamärgid | |
\ W | Mittesõnaliste tähemärkide sobitamine | |
[…] | Sobitage ükski sulgudes olev märk | |
[^…] | Sobitage ükski märk, mis pole sulgudes | |
$ | Sobitage rea lõppu | |
^ | Sobitage rea algus |
Sobitamis- ja otsingufunktsioonid Pythonis
Nüüd näeme siin kahte näidet Pythonis olemasolevate kahe sisseehitatud funktsiooniga. Üks on vaste ja teine otsingufunktsioon. Mõlemad võtavad samad parameetrid, mis on järgmised:
- Muster - Regulaarne avaldis, mis tuleb sobitada või otsida.
- String - String, mis sobitatakse või otsitakse lauses või sisendis.
Enne näiteosasse hüppamist on veel üks asi, mida peate teadma. Sobivate rühmade saamiseks võib kasutada kahte meetodit, mis on järgmised:
- rühmad ()
- rühm (arv = 0,1,2…)
Mis juhtub, on see, et kui kasutatakse vaste- või otsingufunktsioone, muudab see kõigi stringides leiduvate seotud mustrite alarühmad ja struktureerib need positsioonidel alates 0. Parema idee saamiseks vaadake allolevat näidet.
Sobitusfunktsioon (näide)
Järgmises näites oleme võtnud nimekirja, milles oleme kasutanud regulaaravaldist, mis kontrollib a-tähega algavaid sõnu ja valib ainult siis, kui mõlemad sõnad algavad sama tähega i.e.: "a".
impordi rearraylist = ["kiindumuse mõjutamine", "kiindumusakt", "kiindumuse programmeerimine"]
massiivi loendi elemendi jaoks:
k = re.vaste („(a \ w +) \ W (g \ w +)”, element)
kui k:
print ((z.rühmad ()))
Väljund:
("kiindumus", "mõjutus")('kiindumus', 'tegu')
Loendi kolmandat elementi ei arvestata, kuna see ei vasta regeksile, mis ütleb, et mõlemad sõnad peaksid algama tähega „a”.
Otsingufunktsioon (näide)
See funktsioon erineb matšist. Otsing otsib kogu lause läbi, samas kui vaste mitte. Järgmises näites on otsingumeetod edukas, aga vastefunktsioon mitte.
impordi reSisend = "DocumentationNew"
v = re.otsing (“(ta.*)", Sisend)
kui v:
print (“tulemus:” v.rühm (1))
Väljund:
tulemus: tationUus'ta.* 'tähendab midagi pärast ta-d, mis annab meile otsitava sisendi „DocumentationNew” tulemuse „tationNew”.
Järeldus
Regulaaravaldised on kõigi tarkvaraarendajate jaoks üliolulised ja nüüd näete Pythoni programmeerimiskeeles regulaarsete avaldiste kasutamist hõlpsalt.