问题描述
让我们说我有以下字符串:
"H39_M1","H3_M15","H3M19","H3M11","D363_H3","D_128_H17_M50"
如何将它们每一个都拆分为子字符串列表? 像这样:
["H39","M1"],"[H3,"Min15"],["H3","M19"],"M11"],["D363","H3"],["D128","H17","M50"]
及之后:切换字母数字组和数字组的位置,
像这样:
["39H","1M"],"[3H,"15Min"],["3H","19M"],"11M"],["363D","3H"],["128D","17H","50M"]
长度有所不同。 也可以将“ _”下划线分开。
解决方法
我可能建议在此处将re.findall
与re.sub
一起使用:
inp = "H3M19"
inp = re.sub(r'([A-Z]+)([0-9]+)',r'\2\1',inp)
parts = re.findall(r'[0-9]+[A-Z]+',inp)
print(parts)
此打印:
['3H','19M']
第一步re.sub
通过捕获字母和数字对然后交换它们来将H3M19
转换为3H19M
。然后,我们使用re.findall
在交换的输入中查找所有数字/字母对。