|
8. Regular Expressions.
8.1 Wat zijn Regular Expressions.
Regular Expressions is een manier om complexe vergelijkingen te maken op data. PHP heeft daar een
aantal standaard functies voor maar er komt een tijd dat je zoveel vergelijkingen moet maken om
het resultaat te vinden dat regular expressions een uitkomst kunnen zijn.
Dit gedeelte van de faq zal lang niet alles aan bod laten komen maar moet je wel een beetje een indruk
kunnen geven van de mogelijkheden.
8.2 Vergelijkingen op karakters en cijfers (kleine inleiding).
Om strings te vergelijken op leestekens maak je gebruik van de character classes. Er zijn verschillende
character classes die je standaard kan gebruiken:
<opsomming>
[[:alpha:]] - Vergelijking op alle karakters
[[:digit:]] - Vergelijking op alle cijfers
[[:alnum:]] - Vergelijking op letters en cijfers
[[:space:]] - Vergelijking op spaties
[[:upper:]] - Vergelijking op Upper Case strings
[[:lower:]] - Vergelijking op Lower Case strings
[[:xdigit:]] - Vergelijking op Hex waardes
</opsomming>
Een combinatie van de mogelijkheden is ook mogelijk. De vergelijkingen kan je laten beginnen of
eindigen met voorwaarden. Zo gebruik je het ^ teken om aan te geven dat een voorwaarde alleen voor
de eerste positie van de vergelijking moet werken. Voor de laatste positie gebruik je een $.
Een aantal voorbeelden:
<code> <?php
$string = "Hier gaan we eens een aantal vergelijkingen op loslaten.";
/*
Kijk of het eerste karakter een Tussen de A en de M zit of tussen de N en de Z.
*/
if (ereg( "^[A-M]", $string )) {
print "Eerste karakter is een uppercase tussen de A en de M";
} else if (ereg( "^[N-Z]", $string )) {
print "Eerste karakter is een uppercase tussen de N en de Z";
}
/*
Als we de zelfde vergelijking willen maken maar dat ook willen kijken of
het lowercase chars zijn dan kunnen we dat op de volgende manier doen.
*/
if (ereg( "^[a-mA-M]", $string )) {
print "Eerste karakter is een lower/uppercase tussen de A en de M";
} else if (ereg( "^[n-zN-Z]", $string )) {
print "Eerste karakter is een lower/uppercase tussen de N en de Z";
}
/*
Als we willen kijken of het laatste karakter een lowercase is dan doen
we dat als volgt.
*/
if (ereg( "[a-m]$", $string )) {
print "Laatste karakter is een lowercase tussen de a en de m";
} else if (ereg( "[n-z]$", $string )) {
print "Laatste karakter is een lowercase tussen de n en de z";
}
/*
Kijken of het eerste karakter een H is, of het laatste karakter een n.
Hiervoor gebruik je het pipe teken om de expressie mee te geven dat het
gaat om een OR vergelijking.
*/
if (ereg( "^[H]|[n]$", $string )) {
print "Eerste karakter is een H, het laatste karakter is een n";
} else {
print "Vergelijking niet gevonden";
}
/*
Kijk of het eerste karakter een H is en het laatste karakter een n.
*/
if (ereg( "^[H&n]$", $string )) {
print "Eerste karakter is een H, het laatste karakter is een n";
} else {
print "Vergelijking niet gevonden";
}
?>
</code>
Als je graag meer wilt leren over regular expressions dan kan je het beste
een goed boek kopen over dit onderwerp of een bezoekje aan http://www.perl.com.
|