2013-10-18 43 views
0

我有一个字符串,它看起来像,分裂由什么遵循分裂性格Python中的字符串

s = '1 john 2 james 34 baker 45 discover' 

我需要看起来像一个列表,

split_list = ['1 john', '2 james', '34 baker', '45 discover'] 

我开始做这个使用正则表达式分割,并没有得到预期的结果,

import re 
s = '1 john 2 james 34 baker 45 discover' 
s = re.split('\d+',s) 
print s 

['', ' john ', ' james ', ' baker ', ' discover'] 

我猜分裂不起作用,因为它不返回th分裂模式。任何线索以pythonic的方式做到这一点

回答

4

您还可以使用非捕获预测。 (?=\d+)确保空格后面有一个数字,但它不包含作为分隔符的一部分。

import re 
s = '1 john 2 james 34 baker 45 discover' 
s = re.split(' (?=\d+)',s) 
print s 

['1 john', '2 james', '34 baker', '45 discover'] 
2

尝试相反。

s = re.findall('\d+ \w+',s)