[Tutor] Simple reg-ex syntax?

Chris Fuller cfuller084 at thinkingplanet.net
Thu Mar 13 10:10:43 CET 2008


How I would improve this:

compile the regular expression.  This is more efficient.
self.digit_extractor = re.compile('(\d+)')

then, use the findall method:
self.allNumbers = self.digit_extractor.findall(self.aString)
which will even work with multiline strings, but doesn't convert to integers.

To convert, use a list comprehension:
self.allNumbers = [int(i) for i in self.digit_extractor.findall(self.aString)]

Cheers

On Wednesday 12 March 2008 21:59, Allen Fowler wrote:
> Hello,
>
> I have code that looks something like:
>
> self.aString = "abc123xyz"
> self.theNumber = int(re.search('(\d+)',self.aString).group())
>
> Is there a more Pythonic way of doing this? (Both the reg-ex and the Int
> coercion.)  How about when I will need to extract more than one substring?
>
> Thank you,
>
> :)
>
>      
> ___________________________________________________________________________
>_________ Never miss a thing.  Make Yahoo your home page.
> http://www.yahoo.com/r/hs
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor


More information about the Tutor mailing list