Kas ir regulāra izteiksme?
Pirms mēs virzāmies uz praktiskiem piemēriem, mums jāzina, kas patiesībā ir regulāra izteiksme. Regulārā izteiksme ir rakstzīmju secība, kas nosaka ievades vai meklēšanas modeļa struktūru. Iedomājieties, kā ievietot e-pastu vai paroli kādā nejaušā vietnē, piemēram, Facebook, Twitter vai Microsoft. Mēģiniet to nepareizi formulēt, un ar nepareizu es domāju mēģināt iet pretēji viņu konvencijai. Tas jums skaidri norādīs uz šīm kļūdām. Jums nebūs atļauts pāriet uz nākamo soli, kamēr jūsu ievadītā informācija nesaskanēs ar modeli, ko viņi iestatījuši aizmugurē. Šis konkrētais modelis, kas neļauj ievietot jebkādu papildu vai neatbilstošu informāciju, tiek dēvēts par regulāru izteiksmi vai regulāru izteiksmi.
Regulārās izteiksmes Python
Regulārajām izteiksmēm python nav atšķirīgas daļas kā citās programmēšanas valodās. Python satur moduli re kas pilnībā atbalsta regulāro izteicienu izmantošanu. Katru reizi, kad tiek ievadīta nepiemērota vai neatbilstoša informācija vai rodas kāda veida kļūda, tas notiek re modulis to uztvers kā izņēmumu, kas galu galā palīdzēs atrisināt nepieciešamās problēmas.
Regulāro izteiksmju modeļi
Ir daudz rakstzīmju, kas rakstītas secībā, kas veido īpašu regulāru izteiksmju modeli. Izņemot vadības rakstzīmes, (+ ? . * ^ $ () [] | \), visas rakstzīmes sakrīt ar sevi. Tomēr vadības rakstzīmes var izvairīties, pārrakstot atpakaļ slīpsvītru.
Tālāk ir tabula, kas sastāv no modeļa un apraksta par viņu darbību pitonā.
Modelis | Apraksts | |
[Pp] ython | Atbilst “Python” vai “python” | |
Vanna [Ee] | Spēle “TubE” vai “Tube” | |
[patskaņi] | Sakrīt ar jebkuru mazo patskaņu | |
[0-9] | Saskaņojiet jebkuru ciparu no 0 līdz 9 | |
[a-z] | Saskaņojiet jebkuru mazo burtu ASCII burtu | |
[A-Z] | Sakrīt ar jebkuru lielo burtu ASCII | |
[a-zA-Z0-9] | Saskaņojiet jebkuru mazo un lielo ASCII burtu vai cipars no 0 līdz 9 | |
[^ aeiou] | Saskaņojiet jebko, bet ne mazos patskaņus | |
[^ 0-9] | Saskaņojiet jebko, bet ne ciparu | |
. | Saskaņojiet jebkuru rakstzīmi, izņemot jauno līniju | |
\ d | Atbilst jebkuram ciparam: [0-9] | |
\ D | Sakrīt ar ciparu: [^ 0-9] | |
\ s | Saskaņojiet atstarpes | |
\ S | Saskaņojiet ne-baltās atstarpes | |
\ A | Sakritības virknes sākums | |
\ Z | Sakrīt virknes beigas | |
\ w | Sakrīt vārdu rakstzīmes | |
\ W | Sakrīt ar vārdiem nesaistītas rakstzīmes | |
[…] | Saskaņojiet iekavās jebkuru atsevišķu rakstzīmi | |
[^…] | Saskaņojiet jebkuru atsevišķu rakstzīmi, kas nav iekavās | |
$ | Atbilst rindas beigām | |
^ | Atbilst rindas sākumam |
Spēles un meklēšanas funkcijas Python
Tagad šeit mēs redzēsim divus piemērus ar divām iebūvētām funkcijām, kas pastāv pitonā. Viens ir spēles, bet otrs - meklēšanas funkcija. Abiem tiem ir vienādi parametri, kas ir šādi:
- Modelis - Regulāra izteiksme, kas jāsaskaņo vai jāmeklē.
- Stīga - Virkne, kas būtu saskaņota vai meklēta teikumā vai ievadā.
Pirms mēs pārejam uz piemēru, šeit ir vēl viena lieta, kas jums jāzina. Lai iegūtu atbilstošas grupas, var izmantot divas metodes, kas ir šādas:
- grupas ()
- grupa (skaitlis = 0,1,2…)
Tas notiek, ka, ja tiek izmantotas atbilstības vai meklēšanas funkcijas, tas padara visu virkņu saistīto modeļu apakšgrupas un strukturē tos pozīcijās, sākot no 0. Lai iegūtu labāku ideju, skatiet zemāk redzamo piemēru.
Atbilstības funkcija (piemērs)
Šajā piemērā mēs esam izveidojuši sarakstu, kurā mēs izmantojām regulāru izteiksmi, kas pārbauda vārdus, kas sākas ar burtu "a", un atlasīs tikai tad, ja abi vārdi sākas ar vienu un to pašu burtu i.e.: "a".
importa rearraylist = [“pieķeršanās ietekme”, “pieķeršanās akts”, “pieķeršanās programmēšana”]
elementam masīvu sarakstā:
k = re.sakritība (“(a \ w +) \ W (g \ w +)”, elements)
ja k:
drukāt ((z.grupas ()))
Izeja:
(“pieķeršanās”, “ietekme”)(“pieķeršanās”, “darbība”)
Trešais saraksta elements netiks uzskatīts, jo tas neatbilst regulārajam izteicienam, kurā teikts, ka abiem vārdiem jāsākas ar “a”.
Meklēšanas funkcija (piemērs)
Šī funkcija atšķiras no spēles. Meklēšana skenē visu teikumu, bet atbilstība nav. Šajā piemērā meklēšanas metode ir veiksmīga, bet spēles funkcija nav.
importa reIevade = “DocumentationNew”
v = re.meklēt (“(ta.*) ”, Ievade)
ja v:
drukāt (“rezultāts:” v.grupa (1))
Izeja:
rezultāts: tationNew'ta.* ”nozīmē jebko aiz“ ta ”, kas mums dod rezultātu kā“ tationNew ”no meklētās ievades“ DocumentationNew ”.
Secinājums
Regulārās izteiksmes ir izšķirošas visiem programmatūras izstrādātājiem, un tagad jūs varat viegli redzēt, kā izmantot regulārās izteiksmes Python programmēšanas valodā.