Invertierung von Zeichensätzen in Regex
Mit dem Zirkumflex ^ am Anfang der eckigen
Klammern kann man die gewünschte Bedeutung invertieren. Das heißt,
wenn zum Beispiel der Befehl [ab] nach
dem Buchstaben 'a' oder 'b' sucht,
dann sucht der Befehl [^ab] nach allen Zeichen, außer
'a' und 'b'.
Beispiel
In diesem Beispiel sieht das Suchmuster so aus:
Buchstabe 'x', dann NICHT der Buchstabe 'a',
nicht 'b' und nicht 'c', dann Buchstabe
'z':
<?php
$str = 'xaz xbz xcz xez';
$res = preg_replace('#x[^abc]z#', '!', $str);
?>
In der Variablen wird folgendes gespeichert:
'xaz xbz xcz !'
Beispiel
In diesem Beispiel sieht das Suchmuster so aus:
Buchstabe 'x', dann KEIN Kleinbuchstabe des lateinischen Alphabets,
dann Buchstabe 'z':
<?php
$str = 'xaz xbz x1z xCz';
$res = preg_replace('#x[^a-z]z#', '!', $str);
?>
In der Variablen wird folgendes gespeichert:
'xaz xbz ! !'
Praktische Aufgaben
Schreiben Sie einen regulären Ausdruck, der Zeichenketten
nach folgendem Muster findet: Ziffer '1', dann ein Zeichen,
das nicht 'e' und nicht 'x' ist, Ziffer '2'.
Schreiben Sie einen regulären Ausdruck, der Zeichenketten
nach folgendem Muster findet: Buchstabe 'x', dann KEINE
Ziffer von 2 bis 7, Buchstabe 'z'.
Schreiben Sie einen regulären Ausdruck, der Zeichenketten
nach folgendem Muster findet: Buchstabe 'x', dann KEIN
Großbuchstabe des lateinischen Alphabets 1 Mal oder öfter,
Buchstabe 'z'.
Schreiben Sie einen regulären Ausdruck, der Zeichenketten
nach folgendem Muster findet: Buchstabe 'x', dann weder
ein Groß- noch ein Kleinbuchstabe des lateinischen Alphabets und keine Ziffer
von 1 bis 5, 1 Mal oder öfter,
Buchstabe 'z'.