Reguläre Ausdrücke und hoch +?
Hi Leute,
was bedeutet das ^+ bei regulären Ausdrücken?
MfG Max
4 Antworten
![](https://images.gutefrage.net/media/user/Tannibi/1568018311030_nmmslarge__0_0_300_300_9a4334409e63f908baa4b0bff88a688f.jpg?v=1568018311000)
Wenn es in eckigen Klammern steht, bedeutet es
"irgendein Zeichen außer +".
![](https://images.gutefrage.net/media/default/user/7_nmmslarge.png?v=1438863662000)
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"/"^".
![](https://images.gutefrage.net/media/default/user/7_nmmslarge.png?v=1438863662000)
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.
![](https://images.gutefrage.net/media/user/Tannibi/1568018311030_nmmslarge__0_0_300_300_9a4334409e63f908baa4b0bff88a688f.jpg?v=1568018311000)
Ich habe davon nicht viel Ahnung, aber es gibt doch
diese greedy und non-greedy Ausführungen. Vielleicht
liegt es daran.
![](https://images.gutefrage.net/media/user/BeamerBen/1624574570675_nmmslarge__158_0_202_202_aeaa6e33027519ad8eedead1ddc9d3c9.png?v=1624574571000)
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.
![- (Mathematik, Mathematikstudium)](https://images.gutefrage.net/media/fragen-antworten/bilder/482380133/0_big.png?v=1671623961000)
![](https://images.gutefrage.net/media/user/TechPech1984/1632773764038_nmmslarge__12_0_519_519_b8bdbc8023c4e7722d66db9f2af2d5fd.png?v=1632773764000)
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
![](https://images.gutefrage.net/media/user/Suboptimierer/1443606504450_nmmslarge__0_0_160_160_7f828fad18ee7edb96b8daceedaeeadb.png?v=1443606506000)
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.