Verzweifelnder: u Modifier in einem PHP regEx Ausdruck

Beitrag lesen

Hallo Forum!

Ich bin kein regEx Experte und verstehe da eine kleine Sache nicht, vielleicht kann mir das wer laienverständlich erklären?!

Es geht um den Modifier "u" in einem regEx Ausdruck, der in PHP verwendet wird. Ich habe da viele Seiten zu dem Thema besucht und bis jetzt nicht wirklich verstanden, wozu der gut ist.

Auf einigen Seiten ahbe ich was davon gelesen, dass es da um die Bitlänge von Zeichen geht und um den Unicode Modus. Auf anderen Seiten steht, das müsse man verwenden, wenn das Skript und verarbeitende Werte UTF-8 Codiert sind. Wie gesagt, mich verwirrt das alles sehr.

Ich habe folgenden Testcode geschrieben:

$S_regEx_1 = '/𝒴/';
$S_regEx_2 = '/𝒴/u';

$S_string = "Haus mit einem '𝒴' an der Türe.";

$B_test_1 = preg_match($S_regEx_1, $S_string) ? TRUE : FALSE;
$B_test_2 = preg_match($S_regEx_2, $S_string) ? TRUE : FALSE;

var_dump($B_test_1);
var_dump($B_test_2);

Nachdem "𝒴" laut dieser Seite mit 4 Bytes encoded ist, würde ohne dem u Modifier der regEx nicht funktionieren. Bei meinem Beispiel bekomme ich aber in beiden Fällen ein TRUE für die Prüfung, der regEx greift also auch ohne dem u. Wozu ist das also jetzt da?

Gekommen bin ich auf dieses Thema, weil ich mich im PHP Manual über die Funktion preg_split() informieren wollte.

Und dort bin ich bei einem Kommentar darunter auf das '//u' gestoßen, was mich seither jetzt so grübeln lässt.

Ich hab kein Problem oder Fehler ... ich will das einfach nur verstehen. Vielleicht kann mir wer helfen dabei.

Danke!

Der Verzweifelnde