我有一个包含棋子坐标的字符串:
件= [Ka4Qb3Td7b4c4]
如何将字符串拆分为一个列表,用数字分隔?
通缉输出:['Ka4','Qb3','Td7','b4','c4']
答案 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