当我需要分割一行数据时,我得到以下结果:
>>> s="MS Dhoni cricket captain 10000"
>>> val=s.split()
>>> print val
['MS', 'Dhoni', 'cricket', 'captain', '10000']
但我希望代码能够采用以下方式:
['MS Dhoni', 'cricket', 'captain', '10000']
虽然特定位置有空位但必须跳过。我该如何修改代码?
答案 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,...)或将包含大写字母的单词和下一个单词组合在一起。那只是在你的脑海里。
它回答了您的问题,但如果您希望答案对您的项目有用,则必须更具体。