Reguläre Ausdrücke und hoch +?

4 Antworten

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

BeamerBen  21.12.2022, 13:02

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.

1
PWolff  21.12.2022, 13:41
@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.

0
BeamerBen  21.12.2022, 16:56
@PWolff

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.

0
Tannibi  21.12.2022, 17:32
@BeamerBen

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

0
PWolff  21.12.2022, 21:49
@Tannibi

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

0
PWolff  21.12.2022, 13:32

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

1

Du kannst diese Seite nutzen um Regex zu testen, Erklärungen zu bekommen was bestimmte Ausdrücke machen usw.

Beispiel: ^h+allo

Bild zum Beitrag

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.

 - (Mathematik, Mathematikstudium)

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

Woher ich das weiß:Studium / Ausbildung – Mathematik