Das Zirkumflex-Zeichen innerhalb von Zeichensätzen in PHP-Regex
Wie Sie wissen, bewirkt das Zirkumflex innerhalb von [] eine
Negation, wenn es am Anfang der Klammern geschrieben wird.
Daher ist es ein Sonderzeichen innerhalb
dieser Klammern. Um das Zirkumflex als gewöhnliches Zeichen zu erhalten,
muss man es entweder escapen oder von der
ersten Position wegbewegen.
Beispiel
Im folgenden Beispiel ist das Suchmuster wie folgt:
das erste Zeichen ist alles außer 'd',
dann zwei Buchstaben 'x'.
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[^d]xx#', '!', $str);
?>
Als Ergebnis wird in die Variable Folgendes geschrieben:
'! ! ! dxx'
Beispiel
Jetzt ist das Suchmuster wie folgt: das erste Zeichen
- ist 'd' oder '^', dann zwei
Buchstaben 'x':
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[d^]xx#', '!', $str);
?>
Als Ergebnis wird in die Variable Folgendes geschrieben:
'axx bxx ! !'
Beispiel
Man muss das Zirkumflex nicht von der ersten Position wegbewegen, sondern kann es einfach mit einem Backslash escapen, und es wird sich selbst darstellen:
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[\^d]xx#', '!', $str);
?>
Als Ergebnis wird in die Variable Folgendes geschrieben:
'axx bxx ! !'
Praktische Aufgaben
Gegeben ist ein String:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Schreiben Sie einen regulären Ausdruck, der die Strings nach folgendem Muster findet: Zirkumflex oder Klammeraffe, dann zwei lateinische Buchstaben.
Gegeben ist ein String:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Schreiben Sie einen regulären Ausdruck, der die Strings nach folgendem Muster findet: NICHT Zirkumflex und nicht Klammeraffe, dann zwei lateinische Buchstaben.
Gegeben ist ein String:
<?php
$str = '^xx axx ^zz bkk';
?>
Schreiben Sie einen regulären Ausdruck, der die Strings nach folgendem Muster findet: NICHT Zirkumflex, dann zwei lateinische Buchstaben.