Kent Johnson wrote:
> One regex can split apart a numeric part and a non-numeric unit:

A little explanation:

> In [22]: import re
> In [23]: splitter = re.compile(r'(\d+)(\S+)')

The regex finds one or more digits \d+ followed by one or more 
non-whitespace characters \S+. The parentheses define groups which will 
be returned by the match.

> In [24]: splitter.findall('2m 4cm 3mm')
> Out[24]: [('2', 'm'), ('4', 'cm'), ('3', 'mm')]

findall() finds all matches for the regex in the string. When the regex 
contains groups, the value returned is a list of tuples. Each tuple 
contains the value of all the groups in the regex.

> If you want to allow decimals change the regex to r'([\d.]+)(\S+)'

This makes the first group match digits and period instead of just digits.

Kent
_______________________________________________
Tutor maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/tutor

Reply via email to