Karakterklassen

Middels de […] constructie kun je aangeven dat op een bepaalde positie binnen het patroon een van meerdere karakters mag voorkomen. Neem bijvoorbeeld eens aan dat je op zoek bent naar zowel bink als bonk. In dat geval zou je de b[io]nk regex kunnen gebruiken.

Een ander voorbeeld, het herkennen van hexadecimale cijfers, is [0123456789abcdefABCDEF]. Dit wordt echter al snel onpraktisch. Gelukkig kun je een minteken gebruiken om een bereik (of interval) aan te geven: [0-9] is effectief gelijk aan [0123456789]. Meerdere bereiken in een karakterklasse mag ook: [0-9a-fA-F].

Denk er alleen wel aan om niet [A-z] te gebruiken wanneer je [A-Za-z] bedoelt. Hoewel het er handig uitziet, pakt de eerste regex ook de zes karakters tussen de 'Z' en 'a' (als je tenminste de ASCII karakterset gebruikt).

Je kunt ook een genegeerde karakterklasse (genegeerd als in negatie) aangeven door een dakje (^) direct achter het openingshaakje te zetten: [^…]. Dit negeert de zin van de karakterklasse: [^0-9] past alle karakters behalve cijfers.

Alles goed en wel, maar wat nou als je die haakjes, minteken en dakje binnen je karakterklasse wil gebruiken? Een manier is om ze te escapen met een backslash: [\^\]]. Een andere is om ze op plaatsen te zetten waar ze niet geldig zijn; de regex motor zal ze dan letterlijk interpreteren. Dus, plaats het minteken als eerste of laatste in de karakterklasse, het dakje op elke behalve de eerste plaats, en het sluitingshaakje direct achter het openingshaakje: []^[-] is een geldige karakterklasse van vier karakters.

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. Wat zijn het?
  3. Metakarakters
  4. Karakterklassen
  5. De Punt
  6. Kwantificeerders
  7. Alternatie
  8. Groeperen
  9. Terugverwijzingen
  10. Ten slotte

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.