regex question on .findall and \b

Sjoerd Mullender sjoerd at acm.org
Thu Jul 2 13:18:07 EDT 2009


On 2009-07-02 18:38, Ethan Furman wrote:
> Greetings!
>
> My closest to successfull attempt:
>
> Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit
> (Intel)]
> Type "copyright", "credits" or "license" for more information.
>
> IPython 0.9.1 -- An enhanced Interactive Python.
>
> In [161]: re.findall('\d+','this is test a3 attempt 79')
> Out[161]: ['3', '79']
>
> What I really want in just the 79, as a3 is not a decimal number, but
> when I add the \b word boundaries I get:
>
> In [162]: re.findall('\b\d+\b','this is test a3 attempt 79')
> Out[162]: []
>
> What am I missing?
>
> ~Ethan~

Try this:
 >>> re.findall(r'\b\d+\b','this is test a3 attempt 79')
['79']

The \b is a backspace, by using raw strings you get an actual backslash 
and b.

-- 
Sjoerd Mullender



More information about the Python-list mailing list