循环通过python正则表达式匹配

时间:2012-10-13 05:12:51

标签: python regex nested-loops

这比我遇到的要容易。我的问题是变成一个看起来像这样的字符串:

ABC12DEF3G56HIJ7

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

在我的生活中,我不能使用REGEX匹配设计一组正确的循环。问题的关键在于代码必须完全通用,因为我不能假设[A-Z]片段有多长,也不能假设[0-9]片段有多长。

感谢您的帮助!

2 个答案:

答案 0 :(得分:95)

Python的re.findall应该适合你。

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)

答案 1 :(得分:39)

如果数据集很大,最好使用re.finditer

<textarea id="message" rows="4" cols="50"> </textarea>