Cela doit être plus facile que ce que je rencontre. Mon problème est de tourner une chaîne qui ressemble à ceci:
ABC12DEF3G56HIJ7
dans
12 * ABC
3 * DEF
56 * G
7 * HIJ
Et je ne peux pas, pour ma vie, concevoir un ensemble correct de boucles en utilisant l'appariement REGEX. Le noeud du problème est que le code doit être complètement général car je ne peux pas supposer combien de temps le [A-Z]
_ fragments seront, ni combien de temps le [0-9]
_ fragments seront.
Merci pour toute aide!
Python's re.findall
devrait fonctionner pour vous.
import re
s = "ABC12DEF3G56HIJ7"
pattern = re.compile(r'([A-Z]+)([0-9]+)')
for (letters, numbers) in re.findall(pattern, s):
print(numbers, '*', letters)
Il est préférable d'utiliser re.finditer si votre jeu de données est volumineux:
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)