Boy do REs ever suck sometimes...
Tim Peters
tim.one at home.com
Fri Oct 5 02:58:14 EDT 2001
[Ignacio Vazquez-Abrams]
> Here's the problem I'm having with REs. When I use an RE like
> '^[0-9]+$' it matches both '123' and '123\n'. How can I get it to not
> match the string with the newline?
A straightforward way:
>>> import re
>>> pat = re.compile(r'\d+\Z')
>>> pat.match('123')
<SRE_Match object at 0x007AC8C0>
>>> pat.match('123\n')
>>>
A sicker way:
>>> pat = re.compile(r'\d+(?!\n)$')
>>> pat.match('123')
<SRE_Match object at 0x007AB6F0>
>>> pat.match('123\n')
>>>
you-can't-truly-give-up-regexps-before-mastering-them<wink>-ly y'rs - tim
More information about the Python-list
mailing list