循环通过python正则expression式匹配
这比我所遇到的要容易得多。 我的问题是把一个string看起来像这样:
ABC12DEF3G56HIJ7
成
12 * ABC 3 * DEF 56 * G 7 * HIJ
而我不能在我的生活中使用REGEX匹配来devise一组正确的循环。 问题的关键在于代码必须是完全一般的,因为我不能假定[AZ]
片段将会多久, [0-9]
片段将会多久。
谢谢你的帮助!
Python的re.findall
应该为你工作。
现场演示
import re s = "ABC12DEF3G56HIJ7" pattern = re.compile(r'([AZ]+)([0-9]+)') for (letters, numbers) in re.findall(pattern, s): print(numbers, '*', letters)
如果数据集很大,最好使用re.finditer :
import re s = "ABC12DEF3G56HIJ7" pattern = re.compile(r'([AZ]+)([0-9]+)') for m in re.finditer(pattern, s): print m.group(2), '*', m.group(1)