Regular Expression bug?

Mats Wichmann mats at wichmann.us
Thu Mar 2 14:37:30 EST 2023


On 3/2/23 12:28, Chris Angelico wrote:
> On Fri, 3 Mar 2023 at 06:24, jose isaias cabrera <jicman at gmail.com> wrote:
>>
>> Greetings.
>>
>> For the RegExp Gurus, consider the following python3 code:
>> <code>
>> import re
>> s = "pn=align upgrade sd=2023-02-"
>> ro = re.compile(r"pn=(.+) ")
>> r0=ro.match(s)
>>>>> print(r0.group(1))
>> align upgrade
>> </code>
>>
>> This is wrong. It should be 'align' because the group only goes up-to
>> the space. Thoughts? Thanks.
>>
> 
> Not a bug. Find the longest possible match that fits this; as long as
> you can find a space immediately after it, everything in between goes
> into the .+ part.
> 
> If you want to exclude spaces, either use [^ ]+ or .+?.


https://docs.python.org/3/howto/regex.html#greedy-versus-non-greedy



More information about the Python-list mailing list