0

我有一个看起来像的字符串,

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']

我猜拆分不起作用,因为它不返回拆分模式。以pythonic方式执行此操作的任何线索

4

2 回答 2

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']
于 2013-10-18T22:28:00.650 回答
2

尝试相反。

s = re.findall('\d+ \w+',s)
于 2013-10-18T22:21:26.060 回答