da5id da5id - 1 year ago 30
Python Question

Looping through python regex matches

This has to be easier than what I am running into. My problem is turning a string that looks like this:



12 * ABC
3 * DEF
56 * G
7 * HIJ

And I can't, for the life of me, design a correct set of loops using REGEX matching. The crux of the issue is that the code has to be completely general because I cannot assume how long the
fragments will be, nor how long the
fragments will be.

Thank you for any assistance!

Answer Source

Python's re.findall should work for you.

Live demo

import re

s = "ABC12DEF3G56HIJ7"
pattern = re.compile(r'([A-Z]+)([0-9]+)')

for (letters, numbers) in re.findall(pattern, s):
    print numbers, '*', letters