Pythons regulärer Ausdruck: Nicht gierig optionale Gruppe, gefolgt von einer anderen optionalen Gruppe

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Pythons regulärer Ausdruck: Nicht gierig optionale Gruppe, gefolgt von einer anderen optionalen Gruppe

by Anonymous » 07 Feb 2025, 09:21

Ich verwende den folgenden regulären Ausdruck in Python:

Code: Select all

^( .+?)?( Com:.*)?$
[/b]
(Dieser Regex mag dumm aussehen, aber es ist tatsächlich Teil einer größeren komplexeren Zeichenfolge. Ich habe gerade den problematischen Teil extrahiert.) und ich haben diese 2 verschiedenen Zeichenfolgen: < /p>

[*]

Code: Select all

 abc Com: 123
[/b]
[*]

Code: Select all

 Com: 123
[/b]

Mit der ersten Zeichenfolge übereinstimmt Group 1 nur "ABC" und Gruppe 2 übereinstimmt "com: 123" . Dies ist, was ich erwarte, da Gruppe 1 nicht gierig ist. ". Aber nein, Gruppe 1 entspricht dem gesamten String und der Gruppe 2 Nichts. Ich verstehe es nicht. < /P>
Was ist hier los? Könnte jemand erklären?

Top