String + number split

Graham Breed usenet at microtonal.co.uk
Mon Apr 12 13:41:28 EDT 2004


Stevie_mac wrote:

> Hello again, I can do this, but I'm sure there is a much more elegant way...
> 
> A string, with a number on the end, strip off the number & discard any underscores
> 
> eg...
> 
> font12        becomes         ('font',12)
> arial_14      becomes        ('arial',14)

Hmm, well, there's always

 >>> import re
 >>> def fsplit(s):
	matcher = re.compile('\d+$|_')
	return matcher.sub('', s), int(matcher.findall(s)[-1])

 >>> fsplit('font12')
('font', 12)
 >>> fsplit('arial14')
('arial', 14)
 >>> fsplit('__arial__bold_1_14')
('arialbold1', 14)

I'm scary enough that I probably would do it this way.


                Graham



More information about the Python-list mailing list