Wat zijn het?

Een reguliere expressie, meestal afgekort tot "regex" of "regexp", beschrijft tekstpatronen. Stel dat je op zoek bent naar een stukje text dat begint met twee, drie of vier letters 'A', gevolgd door precies drie letters 'C'. Dit patroon kan beschreven worden met de regex A{2,4}C{3}.

Uit bovenstaande regex kun je afleiden dat niet alle karakters letterlijk geïnterpreteerd worden. De accolades (of snorretjes, kies maar) hebben duidelijk een speciale betekenis. Karakters met zo'n speciale betekenis worden metakarakters genoemd. Goed, reguliere expressies hebben dus hun eigen syntaxis, en daarom zou je kunnen spreken van een regex taal.

Net als met de meeste mensentalen heeft de regex-taal vele dialecten; regexes geschreven voor perl zijn niet automatisch ook geschikt voor sed, awk or grep, om maar paar standaard UNIX tools te noemen.

Ik heb ervoor gekozen om alle regexes in deze tutorial in het POSIX dialect te schrijven. Dit omdat POSIX langzaam terein aan het winnen is in de wereld van reguliere expressies, en omdat een flink aantal dialecten er erg veel op lijkt (nou ja, eigenlijk is het andersom). Dit betekent echter niet dat ik alle features van de POSIX 1003.2 reguliere expressie standaard behandel. Een andere reden waarom ik het POSIX dialect gebruik in plaats het Perl dialect is omdat de Perl documentatie het Perl dialect veel beter uitlegt dan ik ooit zal kunnen. Bovendien, op deze manier zit je niet vast aan de extensies van een bepaalde tool. Je zou kunnen zeggen dat het POSIX dialect een soort van grootste gemene deler is.

2.1. Gebruik
Een regex op zich doet vrij weinig. Pas waneer zo'n beshrijving van een tekstpatroon wordt toegepast op een stuk tekst, gebeurt er wat. Het toepassen wordt gedaan door een stukje software dat de regex engine (motor) wordt genoemd. De tekst wordt vanaf het begin doorzocht tot een stuk tekst is gevonden dat aan de beschrijving van het patroon (de regex) voldoet, of tot de tekst op is. Als er inderdaad een stuk tekst gevonden wordt dat aan de regex voldoet, dan spreken we van een pattern match, een patroon-match.

In principe zijn reguliere expressies op twee manieren toe te passen. Je kunt programma's gebruiken die speciaal zijn geschreven om regexes op tekst los te laten, zoals grep, egrep en sed. De andere manier is door de regex-mogelijkheden van een programmeer- of scripttaal te gebruiken. Tegenwoordig bieden de meeste talen, bijvoorbeeld C, C++, Javascript, Python en PHP, functies en/of methoden om een regex op een stuk tekst toe te passen.

awk en in het bijzonder perl vallen er zo'n beetje tussen in. Als je perl eenmaal een beetje in de vingers hebt, zul je zien hoe stevig het concept van het toepassen van een regex op een stuk tekst in het gehele ontwerp van perl is geïntegreerd.

« 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.