da5*_*5id 60 python regex nested-loops
这比我遇到的要容易.我的问题是转换一个看起来像这样的字符串:
ABC12DEF3G56HIJ7
Run Code Online (Sandbox Code Playgroud)
成
12 * ABC
3 * DEF
56 * G
7 * HIJ
Run Code Online (Sandbox Code Playgroud)
在我的生活中,我不能使用REGEX匹配设计一组正确的循环.问题的关键在于代码必须是完全通用的,因为我不能假设[A-Z]
片段将存在多长时间,也不能假设片段有多长[0-9]
.
谢谢你的帮助!
Ray*_*oal 99
Python re.findall
应该适合你.
import re
s = "ABC12DEF3G56HIJ7"
pattern = re.compile(r'([A-Z]+)([0-9]+)')
for (letters, numbers) in re.findall(pattern, s):
print(numbers, '*', letters)
Run Code Online (Sandbox Code Playgroud)
Mit*_*ril 50
如果数据集很大,最好使用re.finditer:
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)
Run Code Online (Sandbox Code Playgroud)