Tutorials
Regular Expressions Overzicht
Dit is een overzicht van de meestgebruikte RegExp mogelijkheden
Pagina 1
Intro
Aangezien ik de vorige tutorial over RegExp een beetje kort en eenvoudig vond ben ik maar begonnen aan een overzicht waar iets meer in behandelt wordt
Let wel, dit is een opvolger GEEN VERVANGER.
ik kan je dan ook aanraden om die tutorial ook even door te lezen omdat word uitgelegd wat RegExp precies is en wat je ermee kan
deze tutorial gaat overigens alleen over PERL compatible RegExp maar ze zouden ook allemaal bij Posix functies moeten werken
Tip: kopieer deze tutorial naar notepad ofzo, daar zie hij er wat beter uit :)
Let wel, dit is een opvolger GEEN VERVANGER.
ik kan je dan ook aanraden om die tutorial ook even door te lezen omdat word uitgelegd wat RegExp precies is en wat je ermee kan
deze tutorial gaat overigens alleen over PERL compatible RegExp maar ze zouden ook allemaal bij Posix functies moeten werken
Tip: kopieer deze tutorial naar notepad ofzo, daar zie hij er wat beter uit :)
Pagina 2
De Functies
ik zal maar eventjes beginnen met het uitleggen van de functies die ervoor gebruikt kunnen worden
preg_grep Input: array Output: array met resultaten
preg_match_all Input: string Output: 2 dimensionale array met resultaten
preg_match Input: string Output: array met resultaten
preg_quote Input: string Output: escaped string
preg_replace_callback Input: string/array+functie Output: string/array
preg_replace Input: string/array Output: string/array
preg_split Input: string Output: array
Even wat info over de onderstaande uitleg:
RegExp een string met een regular expression erin
RegExpString een string met een regular expression erin
RegExpArray een array met een regular expressions erin
InputArray een array met gegevens die de functie in gaan
InputString een string met gegevens die de functie in gaan
ResultsArray een array met gegevens die uit de functie komen
VervangString een string met data waar de andere waardes door vervangen moeten worden
VervangArray een array met data waar de andere waardes door vervangen moeten worden
$array = preg_grep(RegExp,InputArray);
$integer = preg_match_all(RegExp,InputString,ResultsArray[,extra settings]);
$integer = preg_match(RegExp,InputString[,$ResultsArray],[extra settings]);
$string = preg_quote(InputString[,Delimiter]);
$string = preg_replace_callback(RegExpString,functie,InputString[,limiet]);
$array = preg_replace_callback(RegExpArray,functie,InputArray[,limiet]);
$string = preg_replace(RegExpString,VervangString,InputString[,limiet]);
$array = preg_replace(RegExpArray,VervangArray,InputArray[,limiet]);
$array = preg_split(RegExp,InputString[,limiet],[extra settings]);
preg_grep Input: array Output: array met resultaten
preg_match_all Input: string Output: 2 dimensionale array met resultaten
preg_match Input: string Output: array met resultaten
preg_quote Input: string Output: escaped string
preg_replace_callback Input: string/array+functie Output: string/array
preg_replace Input: string/array Output: string/array
preg_split Input: string Output: array
Even wat info over de onderstaande uitleg:
RegExp een string met een regular expression erin
RegExpString een string met een regular expression erin
RegExpArray een array met een regular expressions erin
InputArray een array met gegevens die de functie in gaan
InputString een string met gegevens die de functie in gaan
ResultsArray een array met gegevens die uit de functie komen
VervangString een string met data waar de andere waardes door vervangen moeten worden
VervangArray een array met data waar de andere waardes door vervangen moeten worden
$array = preg_grep(RegExp,InputArray);
$integer = preg_match_all(RegExp,InputString,ResultsArray[,extra settings]);
$integer = preg_match(RegExp,InputString[,$ResultsArray],[extra settings]);
$string = preg_quote(InputString[,Delimiter]);
$string = preg_replace_callback(RegExpString,functie,InputString[,limiet]);
$array = preg_replace_callback(RegExpArray,functie,InputArray[,limiet]);
$string = preg_replace(RegExpString,VervangString,InputString[,limiet]);
$array = preg_replace(RegExpArray,VervangArray,InputArray[,limiet]);
$array = preg_split(RegExp,InputString[,limiet],[extra settings]);
Pagina 3
Het gebruik van Regexp
hier een klein lijstje met gereserveerde tekens
^ = begin van string
$ = eind van string
. = alle tekens behalve newlines
? = 0 of 1 maal het vorige teken
* = 0 of meer maal het vorige teken
+ = 1 of meer maal het vorige teken
dan nog wat andere mogelijkheden
()
hiermee kan je aangeven dat je de opgehaalde data wilt bewaren voor later gebruik
kijk maar naar dit voorbeeld
<?
$string = 'dit is voorbeeld 1';
$regexp = '/[a-z]* ([a-z]*)/';
preg_match_all($regexp,$string,$matches);
print_r($matches);
?>
De resultaten hieruit zullen dit zijn:
0: dit is
1: is
je ziet dat 0 alle data bevat die gematcht is, 1 bevat alleen de data die tussen () staat
als je meerdere malen () gebruikt dan word gewoon het getal hoger, dus 2,3,4...
[]
hiermee kan je een lijst of range van tekens geven die mogen voorkomen
[az] dit zal een a of een z accepteren
[a-z] alles van a tot en met z
[_-=] de tekens _ - en =
[a-f] alles van a tot en met f
Voorbeeld:
<?
$string = 'blaatz';
$regex = '[az]';
preg_match($regex,$string,$matches);
print_r($matches);
?>
{}
hiermee kan je aangeven hoe vaak iets mag voorkomen
{10} moet precies 10x voorkomen
{5,} moet 5 of meer maal voorkomen
{4,6} moet tussen de 4 en 6 maal voorkomen
^ = begin van string
$ = eind van string
. = alle tekens behalve newlines
? = 0 of 1 maal het vorige teken
* = 0 of meer maal het vorige teken
+ = 1 of meer maal het vorige teken
dan nog wat andere mogelijkheden
()
hiermee kan je aangeven dat je de opgehaalde data wilt bewaren voor later gebruik
kijk maar naar dit voorbeeld
<?
$string = 'dit is voorbeeld 1';
$regexp = '/[a-z]* ([a-z]*)/';
preg_match_all($regexp,$string,$matches);
print_r($matches);
?>
De resultaten hieruit zullen dit zijn:
0: dit is
1: is
je ziet dat 0 alle data bevat die gematcht is, 1 bevat alleen de data die tussen () staat
als je meerdere malen () gebruikt dan word gewoon het getal hoger, dus 2,3,4...
[]
hiermee kan je een lijst of range van tekens geven die mogen voorkomen
[az] dit zal een a of een z accepteren
[a-z] alles van a tot en met z
[_-=] de tekens _ - en =
[a-f] alles van a tot en met f
Voorbeeld:
<?
$string = 'blaatz';
$regex = '[az]';
preg_match($regex,$string,$matches);
print_r($matches);
?>
{}
hiermee kan je aangeven hoe vaak iets mag voorkomen
{10} moet precies 10x voorkomen
{5,} moet 5 of meer maal voorkomen
{4,6} moet tussen de 4 en 6 maal voorkomen
Pagina 4
Pattern Modifiers
En nu nog pattern modifiers, ik ga ze hier niet allemaal plaatsen want dat vind ik teveel maar hier is iig. een lijstje
\n newline (hoor je te weten)
\r carriage return (andere soort van newline)
\t tab
\d een cijfer
\D geen cijfer
\s whitespace (newlines tabs en spaties)
\S geen whitespace
\w een woord
\W geen woord
\b pakt alleen woorden \b.*\b zou dus het eerste woord moeten pakken
\B het omgekeerde van \b
\i case INsensitive
\m er zijn geen newlines meer
\s de . pakt ook newlines
dit was het dan weer, ik denk dat dit een leuk lijstje is om bij de hand te houden voor als je met regexp bezig bent.
ik kan me voorstellen dat je dit niet in 1x allemaal uit je hoofd weet ;)
\n newline (hoor je te weten)
\r carriage return (andere soort van newline)
\t tab
\d een cijfer
\D geen cijfer
\s whitespace (newlines tabs en spaties)
\S geen whitespace
\w een woord
\W geen woord
\b pakt alleen woorden \b.*\b zou dus het eerste woord moeten pakken
\B het omgekeerde van \b
\i case INsensitive
\m er zijn geen newlines meer
\s de . pakt ook newlines
dit was het dan weer, ik denk dat dit een leuk lijstje is om bij de hand te houden voor als je met regexp bezig bent.
ik kan me voorstellen dat je dit niet in 1x allemaal uit je hoofd weet ;)
Reacties
0