repeating regular expressions in one string

Inyeol Lee inyeol.lee at siliconimage.com
Wed Nov 16 15:25:41 EST 2005


On Wed, Nov 16, 2005 at 03:09:56PM -0500, Shane wrote:
> Hi folks,
> 
> I'm new to regular expressions (and a novice at Python) but it seems to be the tool I need for a particular problem. I have a bunch of strings that looks like this:
> 
> 'blahblah_sf1234-sf1238_blahblah'
> 
> and I would like to use the re module to parse all the 'sfXXXX' parts of the string. Each 'sfXXXX' needs to be its own string when I am through. How do I compile a regular expression that looks for more than one instance? Currently my expression looks like this:
> 
> myString = re.compile('sf[0-9][0-9][0-9][0-9]')
> 
> This works great for finding the first instance of 'sfXXXX'. I hope that was clear :)
> 
> Thanks,
> 
> Shane
> -- 
> http://mail.python.org/mailman/listinfo/python-list

You can simplify your pattern

    myString = re.compile('sf[0-9][0-9][0-9][0-9]')

to

    myString = re.compile(r"sf\d{4}")

>>> import re
>>> s = 'blahblah_sf1234-sf1238_blahblah'
>>> pat = re.compile(r"sf\d{4}")
>>> re.findall(pat, s)   
['sf1234', 'sf1238']
>>> for m in re.finditer(pat, s):
...     print m.group()
... 
sf1234
sf1238
>>> 

Inyeol



More information about the Python-list mailing list