我有一个看起来像
的字符串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方式做到这一点的线索
答案 0 :(得分: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']
答案 1 :(得分:2)
尝试相反的方法。
s = re.findall('\d+ \w+',s)