PHP mb_ereg_match fehlerhafte Übereinstimmung
Posted: 03 Jan 2025, 15:18
Ich versuche, einen Text mit mb_ereg_match von PHP abzugleichen und verwende diesen Regex-Teil, um alle Nicht-Word-Chats abzugleichen:
Ich möchte Unicode-Zeichen nachschlagen können, deshalb verwende ich mb_ereg.
Mit dieser Eingabe:
Enthält Zeichen aus dem griechischen Alphabet.
Ich möchte mit dem „;“ übereinstimmen. und wenn es mit der Rückgabe von -1 übereinstimmt, wird sonst die Eingabe zurückgegeben.
Was auch immer ich tue, es stimmt nicht mit dem „;“ überein. und gibt die Eingabe zurück.
Ich habe versucht, preg_match zu verwenden, aber es funktioniert bei mir nicht.
Irgendwelche Vorschläge?
Bearbeiten 1
Ich habe einen Test durchgeführt und festgestellt, dass es richtig übereinstimmt, wenn ich meine Eingabe umwandele in:
Funktioniert auch gut mit lateinischen Zeichen.
Bearbeiten 2
Wenn ich eines der folgenden erhalte, möchte ich -1 drucken.
Sonst möchte ich die Eingabe erhalten.
Bearbeiten 3
Ich habe einige weitere Tests durchgeführt und es stimmt mit keinem Sonderzeichen überein, das von UTF-8-Zeichen umgeben ist.
Code: Select all
/[^-\w.]|[_]/u
Mit dieser Eingabe:
Code: Select all
'γιωρ;γος.gr'
Ich möchte mit dem „;“ übereinstimmen. und wenn es mit der Rückgabe von -1 übereinstimmt, wird sonst die Eingabe zurückgegeben.
Was auch immer ich tue, es stimmt nicht mit dem „;“ überein. und gibt die Eingabe zurück.
Ich habe versucht, preg_match zu verwenden, aber es funktioniert bei mir nicht.
Irgendwelche Vorschläge?
Bearbeiten 1
Ich habe einen Test durchgeführt und festgestellt, dass es richtig übereinstimmt, wenn ich meine Eingabe umwandele in:
Code: Select all
';γος.gr'
Bearbeiten 2
Wenn ich eines der folgenden erhalte, möchte ich -1 drucken.
Code: Select all
'γιωρ;γος.gr'
';γος.gr'
'γιωρ;.gr'
';.gr'
Bearbeiten 3
Ich habe einige weitere Tests durchgeführt und es stimmt mit keinem Sonderzeichen überein, das von UTF-8-Zeichen umgeben ist.