Frage zu RegEx
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
anfang
ausdruck
bedeutung
buchstabe
ende
erlauben
klammern
maximal zwei
optimieren
sache
situation
stehen
text
umgebung
vorkommen
wissen
zeichen
ziffer
zitieren
zweites problem
-
Hallo Lima-City User
Ich wünsche allen erstmal ein frohes neuen Jahr!
Jetzt zu meiner Frage. Ich weiss jetzt nicht ob ich hier richtig bin aber RegEx gibt es ja in verschiedenen Programmiersprchen darum hab ich es mal hier reingeschrieben.
Also kann mir jemand folgende Abfrage erklären?
^[a-zA-Z0-9]+$
das in den Klammern ist mir klar aber für was ist das ^,+ und $?
und wie müsste ich es machen wenn ich _ auch erlauben möchte aber diese maximal zwei mal vorkommen dürfen?
Herzlichen Dank für eure Antworten! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Also, wichtig ist erstmal zu wissen, dass bei einem regulärem Ausdruck die Bedeutung eines Zeichens von seiner Umgebung abhängt. Daher sind die folgenden Erklärungen nicht in jeder Situation gültig:
^ bedeutet \"am Anfang des Textes\"
$ bedeutet \"am Ende des Textes\"
+ bedeutet \"mindestens 1 mal\"
Also kann man ^[a-zA-Z0-9]+$ übersetzen:
Am Anfang sollte mindestens ein Buchstabe oder eine Ziffer stehen bis zum Ende des Textes.
und wie müsste ich es machen wenn ich _ auch erlauben möchte aber diese maximal zwei mal vorkommen dürfen?
Ich richte mich mal nach der Perl-Syntax.
^[a-zA-Z0-9]*(_?[a-zA-Z0-9]+_?)|((__[a-zA-Z0-9])|([a-zA-Z0-9]__))[a-zA-Z0-9]*$
Vielleicht kann man diesen Regex noch optimieren.
| bedeutet eine Fallunterscheidung zwischen 2 Subpatterns
Ich habe den Regex jetzt nicht getestet. Sollte aber eigentlich funktionieren.
-
OK danke für deine Antwort ich hatte zuerst bei google nach regex gesucht und dort immer nur solche sachen gefunden [^a] gefunden, das bedeutet ja das am anfang ein a stehen muss, ich wusste aber nicht was es vor der klammer bedeutet aber dank dir weiss ich es jetzt
Für mein zweites Problem werde ich wohl liebe mit php zählen wie oft dieses zeichen(_)vorkommt und dann mit ner if abfrage arbeiten ist wohl einfacher als diese komplizierte abfrage
-
nur solche sachen gefunden [^a] gefunden, das bedeutet ja das am anfang ein a stehen muss
Um mich selber zu zitieren:
Also, wichtig ist erstmal zu wissen, dass bei einem regulärem Ausdruck die Bedeutung eines Zeichens von seiner Umgebung abhängt. Daher sind die folgenden Erklärungen nicht in jeder Situation gültig:
^ bedeutet, wenn es direkt hinter [ steht, dass die Zeichen zwischen [ und ] nicht vorkommen dürfen.
ab[^cd]ef
würde z.B.
abzef erlauben, aber
abcef wäre kein treffer, da \"c\" und \"d\" eben per [^ ] ausgeschlossen sind. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage