Reguläre Ausdrücke und hoch +?
Hi Leute,
was bedeutet das ^+ bei regulären Ausdrücken?
MfG Max
4 Antworten
Wenn es in eckigen Klammern steht, bedeutet es
"irgendein Zeichen außer +".
Dann gäbe es noch
[\^+]
...
Ich habe es gerade mal ausprobiert: In der .NET-Auffassung von Regexes kann das Pattern tatsächlich
"^+"
(kein weiteres Zeichen) lauten. Aber wider Erwarten passt es - mit RegexOptions.Multiline - nicht auf eine ununterbrochene Folge von Zeilenanfängen, sondern auf ein Leerstring.
Ich habe davon nicht viel Ahnung, aber es gibt doch
diese greedy und non-greedy Ausführungen. Vielleicht
liegt es daran.
Außerhalb eckiger Klammern und wenn noch ein Backslash (eine ungerade Anzahl von Backslashes) davor steht
\^+
bedeutet es, eine zusammenhängende Folge von mindestens einem "Dach"/"Caret"/"^".
Du kannst diese Seite nutzen um Regex zu testen, Erklärungen zu bekommen was bestimmte Ausdrücke machen usw.
Beispiel: ^h+allo
Sehr nützlich um Regex zu lernen oder zu testen.
Wie auch in der Erklärung der Seite steht matched ^ den Anfang des Strings (bzw. hier line da /m aka. multiline flag gesetzt ist) und + ist ein Quantifier der besagt, dass der vorherige Token ein bis unendlich oft hintereinander vorkommen darf.
Also ^h+allo würde sowohl "hallo" also auch "hhhhhallo" matchen. Aber nicht "dieser Satz enthält hallo", da hallo nicht am Anfang des Strings steht und auch nicht "allo", da das h mindestens ein mal vorkommen muss.
kommt darauf an wo es vorkommt .
innerhalb des
[^abcd]
ist es eine negation der menge , also nicht diese zeichen
ausserhalb
^abcd
zeichnet es den anfang aus . also es muss beginnen mit
abcd
Mindestens ein Vorkommnis
Die Antwort ist auch richtig, als Operator können beide Zeichen nicht hintereinander vorkommen.
[^+] wäre alles außer Plus, so etwas wie ^+ alleine geht einfach nicht.
Also entweder meint er die token einzeln oder die Frage ist falsch/unvollständig gestellt.