Python

Regelmessige uttrykk i Python

Regelmessige uttrykk i Python
I denne artikkelen vil vi ta en kort titt på regulære uttrykk i python. Vi vil arbeide med innebygde funksjoner med eksempler etterfulgt av en tabell som forklarer hva hver karakter betyr i vanlig uttrykk for en bedre forståelse.

Hva er et vanlig uttrykk?

Før vi går mot praktiske eksempler, må vi vite hva et vanlig uttrykk egentlig er. Et vanlig uttrykk er en sekvens av tegn som definerer strukturen til en inngang eller et søkemønster. Tenk deg å legge inn en e-postadresse eller et passord på et tilfeldig nettsted som Facebook, Twitter eller Microsoft. Prøv å si det galt, og med feil mener jeg å gå mot deres konvensjon. Det vil tydelig påpeke disse feilene for deg. Du får ikke lov til å gå til neste trinn før innspillene dine samsvarer med mønsteret de har satt i backend. Det spesifikke mønsteret, som begrenser deg fra å sette noen form for tilleggsinformasjon eller irrelevant informasjon, er kjent som regex eller regulært uttrykk.

Regelmessige uttrykk i Python

Regulære uttrykk spiller ingen annen rolle i python som i andre programmeringsspråk. Python inneholder modulen re som gir full støtte for bruken av vanlige uttrykk. Hver gang en upassende eller umatchbar informasjon blir skrevet inn eller noen form for feil oppstår, dette re modulen vil fange det som et unntak som til slutt hjelper med å løse de nødvendige problemene.

Regelmessige uttrykk mønstre

Det er mange tegn tilgjengelig skrevet i en sekvens som lager et bestemt mønster for vanlig uttrykk. Bortsett fra kontrolltegn, (+ ? . * ^ $ () [] | \), alle karakterene samsvarer med seg selv. Imidlertid kan kontrolltegn unnslippes ved å skrive om en tilbakeslag.

Følgende er en tabell som består av et mønster og en beskrivelse av hvordan de arbeider i python.

Mønster Beskrivelse
[Pp] ython Match "Python" eller "python"
Badekar [Ee] Match "TubE" eller "Tube"
[aeiou] Match alle små bokstaver
[0-9] Match et siffer mellom 0 og 9
[a-z] Match alle små ASCII-bokstaver
[A-Z] Match alle ASCII-bokstaver
[a-zA-Z0-9] Match alle små og store ASCII-bokstaver
eller et siffer mellom 0 og 9
[^ aeiou] Match alt, men ikke små vokaler
[^ 0-9] Match noe, men ikke siffer
. Match alle tegn unntatt ny linje
\ d Match hvilket som helst siffer: [0-9]
\ D Match et ikke-siffer: [^ 0-9]
\ s Match hvite mellomrom
\ S Match ikke-hvite mellomrom
\EN Match begynnelsen på strengen
\ Z Match slutten på strengen
\ w Match ordtegn
\ W Match ikke-ord tegn
[…] Match et enkelt tegn i parentes
[^…] Match et enkelt tegn som ikke er i parentes
$ Match slutten på linjen
^ Match begynnelsen på linjen

Match og søkefunksjoner i Python

Nå, her skal vi se to eksempler med de to innebygde funksjonene som finnes i python. Den ene er match og den andre er søkefunksjonen. Begge tar de samme parametrene som er som følger:

Før vi hopper inn i eksempel, er her en annen ting du trenger å vite. To metoder kan brukes til å få samsvarende grupper som er som følger:

Det som skjer er at når match- eller søkefunksjoner brukes, lager den undergrupper av alle relaterte mønstre i strenger og strukturerer dem i posisjoner som starter fra 0. Se eksemplet nedenfor for å få en bedre ide.

Match-funksjon (eksempel)

I det følgende eksemplet har vi tatt en liste der vi har brukt et regulært uttrykk som sjekker ordene som begynner med bokstaven 'a' og bare vil velge hvis begge ordene begynner med samme bokstav i.e.: 'a'.

importer re
arraylist = ["affection affect", "affection act", "affection Programming"]
for element i arraylist:
k = re.samsvar (“(a \ w +) \ W (g \ w +)”, element)
hvis k:
skriv ut ((z.grupper ()))

Produksjon:

('hengivenhet', 'påvirke')
('hengivenhet', 'handling')

Tredje element i listen vil ikke bli vurdert siden det ikke samsvarer med regex som sier at begge ordene skal begynne med 'a'.

Søkefunksjon (eksempel)

Denne funksjonen er forskjellig fra kamp. Søk skanner gjennom hele setningen mens kampen ikke gjør det. I det følgende eksemplet er søkemetoden vellykket, men samsvarfunksjonen er ikke.

importer re
Input = “DocumentationNew”
v = re.søk (“(ta.*) ”, Inngang)
hvis v:
utskrift (“resultat:” v.gruppe (1))

Produksjon:

resultat: tationNew

'ta.* 'betyr alt etter' ta 'som gir oss resultatet vårt som' tationNew 'fra den søkte Input "DocumentationNew".

Konklusjon

Regular Expressions er avgjørende for alle programvareutviklere, og nå kan du enkelt se hvordan du bruker Regular Expressions i Python-programmeringsspråket.

Kamp for Wesnoth 1.1. 3.6 Utvikling utgitt
Kamp for Wesnoth 1.1. 3.6 utgitt i forrige måned, er den sjette utgivelsen i 1.1. 3.x-serien, og den leverer en rekke forbedringer, spesielt til bruke...
Slik installerer du League Of Legends på Ubuntu 14.04
Hvis du er fan av League of Legends, er dette en mulighet for deg å prøvekjør League of Legends. Merk at LOL støttes på PlayOnLinux hvis du er en linu...
Installer det siste OpenRA-strategispillet på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spillmotor som gjenskaper de tidlige Westwood-spillene som den klassiske Command & Conquer: Red Alert. Di...