[英]split a line of data with a constraint
当我需要分割一行数据时,我得到以下结果:
>>> s="MS Dhoni cricket captain 10000"
>>> val=s.split()
>>> print val
['MS', 'Dhoni', 'cricket', 'captain', '10000']
但是我希望以下面的方式编写代码:
['MS Dhoni', 'cricket', 'captain', '10000']
尽管在特定位置有空间,但必须跳过。 如何修改代码?
该代码可以满足您的要求
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,...)或将仅包含大写字母以及下一个单词的单词组合在一起。 那只是在你的脑海。
它回答了您的问题,但是如果您希望答案对您的项目有用,则必须更加具体。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.