Similar Posts

Subscribe
Notify of
10 Answers
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Tannibi
2 years ago

Wenn es in eckigen Klammern steht, bedeutet es
“irgendein Zeichen außer +”.

BeamerBen
2 years ago
Reply to  Tannibi

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.

PWolff
2 years ago
Reply to  BeamerBen

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.

PWolff
2 years ago
Reply to  Tannibi

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”/”^”.

PWolff
2 years ago

“greedy” und “lazy” bezieht sich darauf, ob der längstmögliche oder der kürzestmögliche Treffer gesucht wird.

Tannibi
2 years ago

Ich habe davon nicht viel Ahnung, aber es gibt doch
diese greedy und non-greedy Ausführungen. Vielleicht
liegt es daran.

BeamerBen
2 years ago

Interessant ja teilweise scheint es erlaubt zu sein, in JS aber zumindest nicht.

In go funktioniert es auch, aber viel Sinn ergibt es nicht.

Und klar, mit \ wird es escaped und da geht es auf jeden Fall, dann ist es ja nur ein normaler character.

BeamerBen
2 years ago

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.

https://regex101.com/

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.

TechPech1984
2 years ago

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
Suboptimierer
2 years ago

Mindestens ein Vorkommnis