Zapętlanie poprzez dopasowania regex Pythona
To musi być łatwiejsze niż to, na co wpadam. Mój problem polega na przekręceniu sznurka, który wygląda tak:
ABC12DEF3G56HIJ7
Do
12 * ABC
3 * DEF
56 * G
7 * HIJ
I nie mogę, na całe życie, zaprojektować poprawnego zestawu pętli za pomocą dopasowania REGEX. Sednem sprawy jest to, że kod musi być całkowicie ogólny, ponieważ nie mogę zakładać, jak długo będą [A-Z]
fragmenty, ani jak długo będą [0-9]
fragmenty.
Dziękuję za wszelką pomoc!
44
Author: Tim Pietzcker, 2012-10-13
2 answers
Python re.findall
powinien działać dla Ciebie.
import re
s = "ABC12DEF3G56HIJ7"
pattern = re.compile(r'([A-Z]+)([0-9]+)')
for (letters, numbers) in re.findall(pattern, s):
print(numbers, '*', letters)
82
Author: Ray Toal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-16 17:14:08
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-16 17:14:08
Lepiej użyć re.finditer Jeśli zbiór danych jest duży:
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)
28
Author: Mithril,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-08 03:12:11
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-08 03:12:11