I have a regex expression:
^([ \t\r]*\S+){2}$
It matches name
and group matches e
, in name
.
I expected to not to match name
, but name name
; such as I wanted \S+
work till it matches. I can make it work just a bit changing it:
^([ \t\r]*\S+)([ \t\r]+\S+)$
but I hoped it would be possible to make it shorter.
+
,*
, and?
are not possessive. They will match as much as they can if that produces a valid match, but if not, the regex engine will backtrack and try matching less. I don't think Python supports possessive quantifiers; you'll have to recode your regex if you don't want to matchname
.