Laten we het nu hebben over reguliere expressies, reguliere expressies zijn niet uniek voor Python, je ziet ze
in feite al onze programmeertalen.
Maar ik ga je snel reguliere expressie leren, omdat ze erg handig
zijn, vooral wanneer je, laten we zeggen, validatie doet, zoals controleren of iemand het juiste e-mailadres
heeft ingevoerd of dat je wachtwoordvereisten hebt of als je wilt controleren als er een touwtje in een stuk tekst bestaat.
Dit gaan we dus onderzoeken in deze video.
Normale uitdrukkingen.
Wat zijn zij?
Nou, gelukkig voor ons wordt Python geleverd met een reguliere expressiemodule.
Onthoud dat reguliere expressies niet Python-specifiek zijn.
Je kunt ze vrijwel in elke taal gebruiken, maar ze zijn erg handig om dingen in een stuk tekst te
vinden.
Dus laten we zeggen dat we hier een string hebben en we kunnen string zoeken hierin zeggen.
Volgende alstublieft.
Daar gaan we.
Laten we zeggen dat ik hier iets wilde zoeken, ten eerste, zou ik zoiets kunnen doen?
Mag ik zeggen zoeken?
En touwtje.
Laten we hier afdrukken.
En als ik op uitvoeren klik.
Ik krijg waar, en dit is een eenvoudige manier voor ons om iets in een string te zoeken.
Dus waarom hebben we zelfs reguliere expressies nodig?
Welnu, reguliere expressies zijn iets krachtiger dan alleen dit, omdat we misschien willen zoeken
hoe vaak er in de string wordt gezocht, of misschien hebben we een gecompliceerde string.
Laat me je laten zien wat ik bedoel, de manier waarop we zoiets als reguliere expressies gebruiken, is door dit formaat
te gebruiken, dus ik kan elke punt zeggen en dan hier de zoekfunctie gebruiken.
En zoals je hier kunt zien, geven we het een patroon en een touwtje en wat vlaggen.
We zullen daar wat later over praten.
Dus alles wat we hoeven te zeggen is welk patroon wil je doen?
Nou, ik wil zoeken of dit in de kracht bestaat, zodat ik dit kan zeggen.
En geef het dan de werkelijke kracht.
In ons geval, nou, dat is onze kracht.
Dus als ik dit uitvoer.
Laten we afdrukken wat hier gebeurt, dus laten we afdrukken.
Als ik klik, ren dan weg.
Oké, ik krijg wat ik een match-object noem, een reguliere expressie geeft ons een uitvoer, niet alleen waar of onwaar,
maar een echt object dat ons wat meer informatie hierover vertelt.
En je kunt hier zien dat een van de informatie de span is, dus waar het in de string voorkomt,
komt het voor bij index van 17 en eindigt bij index van 21.
Dus dat is echt handig.
Laten we deze informatie opslaan en gewoon hier zeggen.
Dus wat kunnen we doen met dit match-object?
Het eerste wat we kunnen doen is kijken wat we hebben.
Dus we hebben in de eerste plaats spane, wat we hebben gezien, en als ik dit doe.
Het vertelt me waar de string voorkomt als een tuple, dus index van 17 tot index van eenentwintig, ik kan
ook starten en starten.
Nou, vertelt me wanneer de tekst begint en ik kan ook groep doen of eigenlijk kan ik ook eindigen om me te laten zien waar
het eindigt.
En dan kan ik ook groep doen.
En group geeft het deel van de string terug waar de match was en laten we zeggen dat er nog een this in zat,
als ik op uitvoeren klik, zie je dat?
Nou, het geeft me alleen dat stukje of een deel van de kracht dat er een match was.
Geen enkele groep is echt nuttig als we meerdere zoekopdrachten proberen uit te voeren.
Dus in ons geval doen we maar één zoekopdracht.
We hebben dus een patroon dat we proberen te matchen, maar er is een manier waarop we meerdere zoekopdrachten binnen één regel
kunnen doen.
Maar voordat ik je laat zien: wat gebeurt er als we iets doen dat niet bestaat, zoals dit
met een valse hoofdletter, zoals rennen?
Ik krijg een foutmelding omdat A nu geen is, want als de reguliere expressie niets vindt, keert het niet
terug, dus het gaat ofwel een overeenkomst, object of niet retourneren.
Hoe kunnen we dit nu geavanceerder maken?
Wel, een ding dat we kunnen doen, is een patroon maken waar we op willen controleren.
Dus laten we zeggen patroon hier.
En voor dit patroon gaan we reguliere expressie gebruiken, dot com pop.
En de campell zal ons toestaan om, net als hier, een patroon te geven.
Dus laten we zeggen dat ik hier nu gewoon naar wil kijken, dit patroon kan ik gebruiken in plaats van elke zoekopdracht uit
te voeren, ik kan het patroon nu gewoon gebruiken.
Om de zoektocht voor mij te doen.
Dus nogmaals, als ik dit uitvoer.
Nou, nu hoef ik het niet door te geven, ik moet het gewoon doorgeven, dit drankje dat we willen zoeken.
Zie dat dit wordt vastgelegd en ik kan het patroon nu overal meerdere keren gebruiken, dus laten we zeggen
dat ik alle methoden die we hebben, kan doen met patroonpunten.
We hebben er eigenlijk best veel.
Ik zal u enkele van de nuttige laten zien.
We hebben alles vinden dat alle vindt.
Gevallen van de wedstrijd, dus laten we zeggen hier zijn.
En klik op uitvoeren.
Kijk eens aan, ik heb dit.
En dit.
Dus ik krijg beide gevallen hiervan in een lijst.
Ik kan ook zoiets doen als volledige match en volledige match, nou ja, ervoor zorgen dat alles volledig overeenkomt.
Dus als ik hier op uitvoeren klik, laten we princi hier op uitvoeren klikken.
Ik krijg er geen omdat ik geen volledige match krijg, zodat een volledige match de match kan retourneren.
Het moet de exacte tekenreeks zijn die we zoeken.
Dus als ik klik, ren dan.
Alsjeblieft, ik krijg nu een match-object.
Laten we zeggen dat ik hier een vraagteken heb in plaats van een uitroepteken, als ik op uitvoeren klik.
Het is geen als ik een uitroepteken heb en daarna misschien iets anders, ik krijg er nog steeds geen.
We hebben ook een andere optie, namelijk match.
En match, zoals je kunt zien, komt overeen met nul of meer tekens aan het begin van de string.
Dus als ik hier een string doe en ik print D nou, eigenlijk, laat me dit veranderen, laten we hier Andre doen en de string die we eigenlijk
vergelijken en als ik op uitvoeren klik.
Ik krijg nog steeds een match-object versus als ik zie welke een volledige match gebruikt.
Dat geeft me Ainun, want, nou ja, we willen hier alleen een exacte match versus een match die overeenkomt met de string en het maakt
dan niet uit wat er daarna komt.
Dit is dus enorm handig.
Maar tot nu toe, ik bedoel, we hebben een aantal methoden die we kunnen gebruiken, die best handig
zijn, maar dit lijkt niet zo krachtig.
Waarom hebben alle talen reguliere expressies?
Waarom maakt het ons echt uit?
Welnu, in de volgende video gaan we dit idee van patroon onderzoeken en hoe we enkele echt
geavanceerde patronen kunnen maken.
Ik zal zien in de volgende video door.