Hilfe bei REgExp

xErY

Erfahrenes Mitglied
hallo ich bräuchte mal eine regExp und ne erklärung dann dazu warum wie das so weil ich davon mal keine Ahnung habe.

Sie, die RegExp, soll folgendes prüfen.

Das erste Zeichen dürfen nur kleine, große Buchstaben oder zahlen sein.
[a-zA-Z0-9] das weiss ich auch aber nun kommts.
danach sollen min 1 bis maximal 14 teichen folgen die nur folgende zeichen haben dürfen.
- Punkt
- Unterstrich
- Bindestrich
- Eckige und runde Klammern
- und a-zA-Z0-9 natürlich
omg bin nen dummy sorry^^

oh ja und in dieses 14 zeichen dürfen 2 sonderzeichen nicht hintereinander stehen.

also z.b .. oder .- oder sowas ist verboten^^

für Hilfe wäre ich dankbar
 
Zuletzt bearbeitet:
Vorschlag (ungetestet):

[a-zA-Z0-9][\._\-\[\]\(\)]{1,14}

Erklärung:
  • [a-zA-Z0-9]: ist dir ja schon klar
  • [\._\-\[\]\(\)]: sämtliche Zeichen, die du haben wolltest. Da der Punkt, der Bindestrich und die eckigen bzw. runden Klammern besondere Bedeutungen innerhalb eines regulären Ausdrucks haben, müssen wir mit einem vorangestellten \ zeigen, dass wir wirklich das jeweilige Zeichen meinen und nicht die Spezialbedeutung.
  • {1,14}: Steht für 1–14 Zeichen der vorherigen Zeichengruppe

edit: Die Bedingung mit den zwei Sonderzeichen, die nicht hintereinander stehen dürfen, hast du leider erst hinzugefügt, als ich schon am Schreiben war. Muss mich aber der Bemerkung von Gumbo bezüglich der Widersprüchlichkeit anschließen.
 
Das erste Zeichen dürfen nur kleine, große Buchstaben oder zahlen sein. […] danach sollen min 1 bis maximal 14 teichen folgen die nur folgende zeichen haben dürfen. […] oh ja und in dieses 14 zeichen dürfen 2 sonderzeichen nicht hintereinander stehen.
Findest du das nicht auch etwas widersprüchlich? Oder was genau bezeichnest du als „Sonderzeichen“?
 
es ist das es bei dem Erstellen eines Battle.net Accounts für das spiel Starcraft am Anfag eines Jeden Accountnames nur [a-zA-Z0-9] stehen darf danach dürfen die Restlichen genannten Zeichen vorkommen jedoch dürfen dann ( . - _ [ ] ( ) ) nicht aufeinander folgen, sprich Hans98.- wäre unzulässig,
Übrigens der von dir gepostete vorschlag unterbindet das benutzen von zb $ nicht.
Wenn ich es mit "hans$" teste bekomme ich true.
 
Zuletzt bearbeitet:
also ich bin soweit das ich alle sachen habe ausser das 2 Sonderzeichen aufeinander folgen wie mach ich denn dsa
 
Mein Vorschlag:
Code:
^[a-zA-Z0-9](?(?<=[\._\-\[\]\(\)])[a-zA-Z0-9]|[a-zA-Z0-9\._\-\[\]\(\)]){1,14}$
Sieht zwar recht komplex aus und unübersichtlich aus, doch wenn man die Syntax eines konditionalen regulären Ausdrucks verstanden hat, ist der Rest auch schnell zu verstehen.
 
kannst das mal erklären verstehe das nicht ganz mit den ?-Zeichen.
Sorry bin regExp echt schlecht
Ach und vielen Dank ;)
 
Hast du schon die Syntax eines konditionalen regulären Ausdrucks und der Assertionen studiert? Denn wenn du die aus dem regulären Ausdruck gedanklich hervorhebst, verstehst du auch schnell den Rest:
Code:
^[a-zA-Z0-9](?(?<=[\._\-\[\]\(\)])[a-zA-Z0-9]|[a-zA-Z0-9\._\-\[\]\(\)]){1,14}$

Funktioniert es denn überhaupt bzw. ist es das, was du suchtest?
 
ja es funktioniert danke ;) wenn du grade so gut dabei bist wie überprüfe ich ein beliebiges PW auf min. ein Zeichen und eine Zahl ;)
Irgendwie mag das auch nicht gehen.
Aber das was du da geschrieben hast über konditionelle RegExps werde ich mal studieren

übrigens
Code:
^(?=.*[0-9]+.*)(?=.*[a-zA-Z]+.*)[0-9a-zA-Z]{6,15}$

ist das mit dem Passwort habe es noch hinbekommen.
Trotzdem vielen dank gumbo ;)=
 
Zuletzt bearbeitet:
Zurück