用约束分割一行数据

时间:2016-08-20 07:00:31

标签: python split

当我需要分割一行数据时,我得到以下结果:

>>> s="MS Dhoni cricket captain 10000"
>>> val=s.split()
>>> print val
['MS', 'Dhoni', 'cricket', 'captain', '10000']

但我希望代码能够采用以下方式:

['MS Dhoni', 'cricket', 'captain', '10000']

虽然特定位置有空位但必须跳过。我该如何修改代码?

1 个答案:

答案 0 :(得分:2)

该代码可以满足您的需求

import re

s="MS Dhoni cricket captain 10000"

print(re.split("\s(?=[a-z0-9])",s))

输出:

['MS Dhoni', 'cricket', 'captain', '10000']

说明:按空格分割,但仅在后面跟着小写字母或数字(由于?=构造(前瞻)而未在分割操作中消耗

但这是作弊:如果MS Dhoni位于字符串的中间,它就不会有效。你假设python知道如何读取区别(Mr,...)或将包含大写字母的单词和下一个单词组合在一起。那只是在你的脑海里。

它回答了您的问题,但如果您希望答案对您的项目有用,则必须更具体。