Modulelessen (1/4)
Letterlijke patronen
In een regex komen "normale" alfanumerieke tekens eenvoudigweg overeen: write
ciao als patroon en de engine zoekt naar de subtekenreeks ciao binnenin
de tekst. Niets magischer: een van links naar rechts scannen positie voor positie.
Pattern: ciao
Sample: Buongiorno, ciao mondo! Ti dico anche ciao.
^^^^ ^^^^Een wedstrijd bevat altijd twee belangrijke stukjes informatie:
- de overeenkomende tekst (hier
ciao); - de index (op 0 gebaseerde offset) waar deze begint in het voorbeeld (hier
12en38).
Standaard zijn regex hoofdlettergevoelig: ciao komt niet overeen met Ciao of
BESCHERMD_INLINE_7. Om hoofdletters en kleine letters te negeren, voegt u de vlag i toe (niet hoofdlettergevoelig).
Hoe de motor werkt
De regex-engine inspecteert de tekst teken voor teken. Bij het zoeken naar het letterlijke patroon ciao wordt eerst gezocht naar de letter c. Eenmaal gevonden, wordt gecontroleerd of het volgende teken i is, vervolgens a en ten slotte o. Als een van deze wedstrijden mislukt, keert de motor terug naar de volgende startpositie en gaat opnieuw op zoek naar c.
Letterlijke patronen en de vlag g
Zonder de g (algemene) vlag stopt de engine bij de eerste gevonden match en stopt dan. Met
g het gaat door en verzamelt elke volgende match tot het einde van de reeks. In deze cursus zullen we dat doen
schakel bijna altijd g in: we willen elke overeenkomst in de tekst zien.
Probeer het
Zoek elk exact (hoofdlettergevoelig) voorkomen van het woord 'ciao' in het voorbeeld. Tip: onthoud de `g`-vlag.
Toon hint
Het patroon is het woord zelf. Hoofdletters mogen niet overeenkomen: nee i-vlag.
Oplossing beschikbaar na 3 pogingen
Oefening beoordelen
Zoek elke keer dat het woord 'fout' voorkomt in de tekst, waarbij u hoofdletters en kleine letters negeert.
Toon hint
Hetzelfde woord als het patroon, maar voeg de i-vlag toe (niet hoofdlettergevoelig) naast g.
Oplossing beschikbaar na 3 pogingen
Extra uitdaging
Identificeer en verzamel alle exacte exemplaren van het woord 'WAARSCHUWING' (hoofdletters, hoofdlettergevoelig) in de voorbeeldlogtekst.
Toon hint
Zoek direct naar de letterlijke tekenreeks WAARSCHUWING en zorg ervoor dat u de i-vlag niet activeert.
Oplossing beschikbaar na 3 pogingen