Het extraheren van matches

De grouping metacharects hebben nog een tweede doel: het uit extraheren van een specifiek gematched gedeelte. Dit is erg handig om uit te zoeken wat gematched heeft, en om specifieke delen uit een string te halen. Voor elke groep is het deel dat gematched wordt een aparte slice in een array die je als derde argument in het preg_match commando kan opgeven.

Bijvoorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?
preg_match("/(\d\d):(\d\d):(\d\d)/", $datum, $datum_array);

print_r($datum_array);
// [0] => uren
// [1] => minuten
// [2] => seconden

?>


Wanneer de groeperingen in een regexp zijn genesteld is de volgorde in de array de volgorde van de groep die het eerst geopend wordt.
Voor complexe voorbeelden zal hij als volgt matchen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
/(ab(cd|ef)((gi)|j))/
 1  2      34

Dus als er een geldige waarde voor de regexp wordt gegevel zou in dit voorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
preg_match("/(ab(cd|ef)((gi)|j))/", $string, $array);
?>


$array[1] gelijk zijn aan 'cd' of 'ef'.

Ook kan je matches gebruiken in de regex zelf!

Door backreferences te gebruiken: \1 \2 \3 etc. Kan je een de waarde van een gematchte groep gebruiken in de regex:

Zo zal:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
/(\w\w\w)\s\1/

Alle drieletterwoorden die achter elkaar stana matchen, bijvoorbeeld:
bow bow
yoo yoo
who who

etc.

Een voorbeeld van dit wanneer je dit tegen een woordenboek bestand zou matchen:

/^(\w\w\w\w|\w\w\w|\w\w|\w)\1$/
levert dit alle repeterende woorden op in het woordenboek.

beriberi
booboo
coco
mama
murmur
papa

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Voorwoord
  2. My First Regex
  3. Het gebruik van character classes
  4. Het een of het ander matchen
  5. Groeperen en hierarchisch matchen
  6. Het extraheren van matches
  7. Repeterende matches
  8. Disclaimer, bronvermelding, handige links, TODO

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.