This has to be easier than what I am running into. My problem is turning a string that looks like this:
ABC12DEF3G56HIJ7   into
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 [A-Z] fragments will be, nor how long the [0-9] fragments will be.
Thank you for any assistance!
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) 
                        It is better to use re.finditer if your dataset is large because that reduces memory consumption (findall() return a list of all results, finditer() finds them one by one).
import re  s = "ABC12DEF3G56HIJ7" pattern = re.compile(r'([A-Z]+)([0-9]+)')  for m in re.finditer(pattern, s):     print m.group(2), '*', m.group(1) 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With