[OT] RegEx-Frage

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
User avatar
StickyNomad
Power Member
Power Member
Posts: 1933
Joined: 2004-01-10, 00:15 UTC
Location: Germany

[OT] RegEx-Frage

Post by *StickyNomad »

Mit reguären Ausdrücken tue ich mich immer noch schwer und fleissiges rumprobieren hat bisher noch keinen Erfolg gebracht. Trotz zu Rate ziehen von: BareGrep-Tutorial, RegexCoach, O'Reilly RegEx Pocket reference, TC-Hilfe. irgendwie wehrt sich das gesamte Konzept bisher erfolgreich dagegen, von mir durchschaut zu werden. Daher meine vermutlich billige Frage:

Für einen Sicherheitscheck in einem Email-Formular sollen Formularfelder per RegExp auf gültige Zeichen geprüft werden (Script aus c't, Softlink: 0522208). Um auch Umlaute mit einzubeziehen wird dort 'setLocale' entprechend gesetzt und die Posix-Klasse [:print:] verwendet, was auf dem lokalen Webserver auch funktioniert:

Code: Select all

setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
//mindestens 3 gültige Zeichen
'/^[[:print:]]{3,}$/'
Blöderweise wird die Website bei Strato gehostet und dort wird 'setLocale' nicht Unterstützt. Wie kann ich den Ausdruck einfach um Umlaute erweitern? Dies hab ich erfolglos probiert:

Code: Select all

'/^[[:print:][ÄäÖöÜüß]]{3,}$/'
Aber das geht schief. Ich würde auch ungern alle erlaubten Zeichen einzeln angeben, irgendeins vergisst man dabei garantiert. Für jemanden mit etwas RegEx-Erfahrung dürfte das doch ein Klacks sein, nehme ich an.

TIA
User avatar
Sheepdog
Power Member
Power Member
Posts: 5150
Joined: 2003-12-18, 21:44 UTC
Location: Berlin, Germany
Contact:

Re: [OT] RegEx-Frage

Post by *Sheepdog »

StickyNomad wrote:

Code: Select all

'/^[[:print:]ÄäÖöÜüß]{3,}$/'
Versuchs mal damit, in Textpad wird so sowohl die Zeichenklasse (bei mir [:digit:]als auch die Umlaute gefunden.

sheepdog
"A common mistake that people make when trying to design something
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
User avatar
StickyNomad
Power Member
Power Member
Posts: 1933
Joined: 2004-01-10, 00:15 UTC
Location: Germany

Post by *StickyNomad »

2Sheepdog
Danke für die Erhellung und schnelle Hilfe, so klappts!

Die eckigen Klammern werden also nur bei definierten Klassen gesetzt, wenn ich das recht verstehe. Vielleicht raff ich das ja irgendwann mal alles, ich hab mich mit RegEx noch nicht eingehend beschäftigt...
User avatar
Sheepdog
Power Member
Power Member
Posts: 5150
Joined: 2003-12-18, 21:44 UTC
Location: Berlin, Germany
Contact:

Post by *Sheepdog »

StickyNomad wrote:2Sheepdog
Danke für die Erhellung und schnelle Hilfe, so klappts!

Die eckigen Klammern werden also nur bei definierten Klassen gesetzt, wenn ich das recht verstehe.

Nee, nicht wirklich.
[[:digit]] findet Zahlen, [äöü] findet ä ö oder ü aber [[:digit]äöü] findet eben Zahlen oder ä ö oder ü.
Vielleicht raff ich das ja irgendwann mal alles, ich hab mich mit RegEx noch nicht eingehend beschäftigt...
So ganz blck ich das ja auch nicht, aber da in Textpad die RegEx richtig implementiert sind und in der Hilfe auch einige Beispiele stehen, da teste ich dann sowas einfach schnell mal durch. Und mit der Zeit gehts dann auch besser. ;)

sheepdog
"A common mistake that people make when trying to design something
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
Post Reply