informatica python regex regularexpression noortje
Regular expressions
Regular Expressions geven je de mogelijkheid om complexe tekstpatronen te zoeken
Regular Expressions zijn complexe zoekpatronen waarmee je complexe tekstpatronen kan zoeken (bijvoorbeeld zoeken naar substrings in strings).
De basis van een regular expression is het interpreteren van speciale karakters.
Vaak wordt “regular expression” afgekort tot “regexp”, “regex”, of “re”
Karakters in regular expressions:
| Karakter | Betekenis |
|---|---|
| . (punt) | Precies een willekeurig teken |
| * (asterisk) | 0, 1 of meer van het voorgaande teken |
| + (plus) | 1 of meer van het voorgaande teken |
| ? (vraagteken) | Exact 0 of 1 van het voorgaande teken |
| ^ (dakje) | Geeft aan dat het er mee moet beginnen |
| $ (dollar) | Geeft aan dat het er mee moet eindigen |
| [ ] | Aantal tekens Een ^ aan het begin van [^ ] geeft de inverse (dat dit NIET mag voorkomen) |
| ( ) | Een groep |
| \ | Escape |
| {m,n} | Minimaal m en maximaal n van het voorgaande teken |
Speciale escapes
| Speciaal karakter | Alternatief | |
|---|---|---|
| Decimal | \d | [0-9] |
| Spatie | \s | |
| Woord | \w |
Voorbeelden van regular expressions
| Regular Expression | Voorbeeld hits | Geen hit op |
|---|---|---|
| H[ea]llo | Hello en Hallo | Hollo |
| TATA[AT][AT] | TATAAT, TATATT, TATAAA | TATAGC |
| …huis (vier puntjes) | Woonhuis, koophuis, leeghuis | Ziekenhuis |
| .*huis | Ziekenhuis | Ziekenhuisje |
| .***** huis.* | huismus, Verhuis- service | Huizen |
| .+huis | Thuis | huis |
| (33 en 34) | ||
| ![[INF pwp 4.pdf#page=33 | page=33]] |
Overzicht re functies
| Functie | Functionaliteit |
|---|---|
| search | Zoeken naar een overeenkomst door de hele string heen |
| match | Zoeken naar een overeenkomst vanaf het begin |
| split | Splitsen op reguliere expressie |
| sub | Vervangen van een patroon |
re.search(pattern, string) Pattern is het te zoeken patroon: de reguliere expressie String is de tekst waarin je het patroon wilt vinden
re.sub(pattern, repl, string, max=0) Repl is waar het gevonden patroon door vervangen moet worden Max is het maximale aantal vervangingen. Indien weggelaten of ingesteld op 0, is er geen limiet aan het aantal splitsingen.
re.split(pattern, string, maxsplit=0,flags=0) Maxsplit is het maximale aantal splitsingen. Indien weggelaten of ingesteld op 0, is er geen limiet aan het aantal splitsingen. Flags is om het gedrag van de reguliere expressie te wijzigen, zoals re.IGNORECASE voor hoofdletterongevoelige matching. Indien weggelaten of ingesteld op 0, is er geen wijziging aan het gedrag van de reguliere expressie.