Regex Anzahl Character Nicht Anzahl Bytes
Guten Morgen zusammen,
und zwar habe ich eine Frage bzgl. RegEx/RegExp.
Ich habe einen regulären Ausdruck der wie folgt ausschaut:
"^[ -\.\s\w\(\)/]{1,35}$"
Nun habe ich bei Sonderzeichen für Russland oder auch bspw in Tschechien welches u.a. wie folgt aussehen könnte: ů
Leider kann ich dadurch nicht mehr auf die 35 Stellen abfragen. Ich vermute, dass es daran liegt, dass es sich hierbei um MultiByte-Character handelt.
Gibt es eine Möglichkeit dem Ausdruck zu sagen, dass er auf Anzahl Character und nicht Byte prüft?
Ich habe schonmal versucht selbst etwas herauszufinden. Leider finde ich jedoch immer nur PHP-Funktionen. Ich bräuchte dies jedoch in einem regulären Ausdruck.
Vielen Dank schonmal im Voraus.
Ich freue mich auf eure Antworten.
Mit freundlichen Grüßen
Peronas
und zwar habe ich eine Frage bzgl. RegEx/RegExp.
Ich habe einen regulären Ausdruck der wie folgt ausschaut:
"^[ -\.\s\w\(\)/]{1,35}$"
Nun habe ich bei Sonderzeichen für Russland oder auch bspw in Tschechien welches u.a. wie folgt aussehen könnte: ů
Leider kann ich dadurch nicht mehr auf die 35 Stellen abfragen. Ich vermute, dass es daran liegt, dass es sich hierbei um MultiByte-Character handelt.
Gibt es eine Möglichkeit dem Ausdruck zu sagen, dass er auf Anzahl Character und nicht Byte prüft?
Ich habe schonmal versucht selbst etwas herauszufinden. Leider finde ich jedoch immer nur PHP-Funktionen. Ich bräuchte dies jedoch in einem regulären Ausdruck.
Vielen Dank schonmal im Voraus.
Ich freue mich auf eure Antworten.
Mit freundlichen Grüßen
Peronas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 272277
Url: https://administrator.de/contentid/272277
Ausgedruckt am: 25.11.2024 um 08:11 Uhr
6 Kommentare
Neuester Kommentar
Moin,
\w enthält ja auch nur folgende Zeichenklassen:
zumindest bei PCRE.
Und da ist dein genanntes Zeichen nunmal nicht enthalten. Da wirst du die erlaubten Unicode-Zeichen aus anderen Sprachen noch hinzufügen müssen, z.B. über die Hex-Codes \xHH
Gruß jodel32
\w enthält ja auch nur folgende Zeichenklassen:
A word character is a character from a-z, A-Z, 0-9, including the _ (underscore) character.
Und da ist dein genanntes Zeichen nunmal nicht enthalten. Da wirst du die erlaubten Unicode-Zeichen aus anderen Sprachen noch hinzufügen müssen, z.B. über die Hex-Codes \xHH
Gruß jodel32
Mittels Hex-Codes ist es leider nicht möglich, da die Zeichen vom Anwender eingegeben werden.
Doch, damit kannst du auch Ranges aus dem Unicode Zeichensatz angeben.Du könntest das ganze ja auch anders angehen und ganze umdrehen und "alles außer bestimmten Sonderzeichen" matchen. Je nachdem was du genau vorhast.