拆分带有多个分隔符的字符串

时间:2012-02-06 22:52:22

标签: python split

我有一个包含棋子坐标的字符串:

件= [Ka4Qb3Td7b4c4]

如何将字符串拆分为一个列表,用数字分隔?

通缉输出:['Ka4','Qb3','Td7','b4','c4']

2 个答案:

答案 0 :(得分:3)

闻起来像家庭作业,但很容易..

import re
pieces = 'Ka4Qb3Td7b4c4'
m = re.compile('[A-Za-z]{1,2}\d+')
print m.findall(pieces)

产量..

['Ka4', 'Qb3', 'Td7', 'b4', 'c4']

答案 1 :(得分:2)

这对我有用:

import re
mylist = []
pieces = "Ka4Qb3Td7b4c4"
for chunk in re.finditer("(.*?[0-9]{1})",pieces):
    mylist.append(chunk.group(1))
print mylist

如果有2位数的分隔符(我不是国际象棋人员......),你可能需要调整正则表达式。

为了兴趣起见,我将其作为建议的列表理解进行了重新设计并同意它更清晰:

import re
pieces = "Ka4Qb3Td7b4c4"
mylist = [ chunk.group(0) for chunk in re.finditer(".*?\d+",pieces) ]
print mylist