Python

Reguliere expressies in Python

Reguliere expressies in Python
In dit artikel zullen we een korte blik werpen op reguliere expressies in python. We zullen werken aan ingebouwde functies met voorbeelden gevolgd door een tabel die uitlegt wat elk teken betekent in reguliere expressie voor een beter begrip.

Wat is een reguliere expressie?

Voordat we naar praktische voorbeelden gaan, moeten we weten wat een reguliere expressie werkelijk is. Een reguliere expressie is een reeks tekens die de structuur van een invoer of een zoekpatroon definieert. Stel je voor dat je een e-mail of wachtwoord invoert op een willekeurige website zoals Facebook, Twitter of Microsoft. Probeer het verkeerd te zeggen en met verkeerd bedoel ik probeer tegen hun conventie in te gaan. Het zal u duidelijk op die fouten wijzen. U mag niet naar de volgende stap gaan totdat uw invoer overeenkomt met het patroon dat ze in de backend hebben ingesteld. Dat specifieke patroon, dat je verhindert om enige vorm van aanvullende of irrelevante informatie te plaatsen, staat bekend als regex of reguliere expressie.

Reguliere expressies in Python

Reguliere expressies spelen in python geen andere rol dan in andere programmeertalen. Python bevat de module opnieuw die volledige ondersteuning biedt voor het gebruik van reguliere expressies. Elke keer dat er ongeschikte of niet-vergelijkbare informatie wordt ingevoerd of een fout optreedt, is dit: opnieuw module gaat het vangen als een uitzondering die uiteindelijk helpt bij het oplossen van de vereiste problemen.

Patronen voor reguliere expressies

Er zijn veel karakters beschikbaar, geschreven in een volgorde die een specifiek patroon voor reguliere expressies maakt. Behalve voor controletekens, (+ ? . * ^ $ ( ) [ ] | \), alle karakters passen bij zichzelf. Controletekens kunnen echter worden geëscaped door vooraf een backslash te schrijven.

Hieronder volgt een tabel die bestaat uit een patroon en een beschrijving over hun werk in python.

Patroon Omschrijving
[Pp]ython Overeenkomen met "Python" of "python"
Kuip [Ee] Overeenkomen met "TubE" of "Tube"
[aeiou] Overeenkomen met elke kleine klinker
[0-9] Overeenkomen met elk cijfer tussen 0 en 9
[a-z] Overeenkomen met elke kleine ASCII-letter
[A-Z] Overeenkomen met een ASCII-letter in hoofdletters
[a-zA-Z0-9] Overeenkomen met elke kleine, hoofdletter ASCII-letter
of een cijfer tussen 0 en 9
[^aeiou] Overeenkomen met alles behalve kleine klinkers
[^0-9] Overeenkomen met alles behalve cijfers
. Overeenkomen met elk teken behalve nieuwe regel
\d Overeenkomen met een willekeurig cijfer: [0-9]
\D Overeenkomen met een niet-cijfer: [^0-9]
\s Overeenkomen met witruimtes
\S Overeenkomen met niet-witruimtes
\EEN Overeenkomen met begin van tekenreeks
\Z Overeenkomen met het einde van de tekenreeks
\w Overeenkomen met woordtekens
\W Overeenkomen met niet-woordtekens
[… ] Overeenkomen met een enkel teken tussen haakjes
[^… ] Overeenkomen met een enkel teken dat niet tussen haakjes staat
$ Overeenkomen met het einde van de regel
^ Overeenkomen met het begin van de regel

Match- en zoekfuncties in Python

Nu gaan we hier twee voorbeelden zien met de twee ingebouwde functies die in python bestaan. De ene is match en de andere is de zoekfunctie. Beiden nemen dezelfde parameters die als volgt zijn:

Voordat we hier in het voorbeeldgedeelte springen, is er nog iets dat je moet weten. Er kunnen twee methoden worden gebruikt om overeenkomende groepen te krijgen, die als volgt zijn:

Wat er gebeurt, is dat wanneer match- of zoekfuncties worden gebruikt, het subgroepen maakt van alle gerelateerde patronen die in strings worden gevonden en deze structureert op posities vanaf 0. Zie het onderstaande voorbeeld om een ​​beter idee te krijgen.

Match-functie (voorbeeld)

In het volgende voorbeeld hebben we een lijst genomen waarin we een reguliere expressie hebben gebruikt die de woorden die beginnen met de letter 'a' controleert en alleen zal selecteren als beide woorden beginnen met dezelfde letter i.e.: 'een'.

opnieuw importeren
arraylist = [“affectie affect”, “affection act”, “affection Programming”]
voor element in arraylist:
k = re.match(“(a\w+)\W(g\w+)”, element)
als k:
print((z.groepen()))

Uitgang:

('affectie', 'affect')
('genegenheid', 'act')

Het derde element in de lijst wordt niet in aanmerking genomen omdat het niet overeenkomt met de regex die zegt dat beide woorden moeten beginnen met 'a'.

Zoekfunctie (voorbeeld)

Deze functie is anders dan match. Zoeken scant door de hele zin terwijl match dat niet doet. In het volgende voorbeeld is de zoekmethode succesvol, maar de matchfunctie niet.

opnieuw importeren
Invoer = “DocumentatieNieuw”
v = re.zoeken(“(ta.*)", Invoer)
als v:
print(“resultaat: ” v.groep 1))

Uitgang:

resultaat: tationNew

'ta'.*' betekent alles na 'ta' wat ons ons resultaat geeft als 'tationNew' van de gezochte Input "DocumentationNew".

Conclusie

Reguliere expressies zijn cruciaal voor alle softwareontwikkelaars en nu kun je gemakkelijk zien hoe je reguliere expressies in de programmeertaal Python kunt gebruiken.

Hoe Xdotool te gebruiken om muisklikken en toetsaanslagen in Linux te stimuleren
Xdotool is een gratis en open source opdrachtregelprogramma voor het simuleren van muisklikken en toetsaanslagen. Dit artikel behandelt een korte hand...
Top 5 ergonomische computermuisproducten voor Linux
Veroorzaakt langdurig computergebruik pijn in uw pols of vingers?? Heb je last van stijve gewrichten en moet je constant de hand schudden?? Voelt u ee...
Hoe de muis- en touchpad-instellingen te wijzigen met Xinput in Linux
De meeste Linux-distributies worden standaard geleverd met de bibliotheek "libinput" om invoergebeurtenissen op een systeem af te handelen. Het kan in...