从列表中的每个元素中删除除了这些元素中的前几个数字之外的所有内容

时间:2014-12-29 15:02:58

标签: python regex list

我在Python中有一个如下所示的列表:

['29382 this is something', '2938535 hello there', '392835 dont care for this', '22024811 yup']

我需要处理它,就像这样:

['29382', '2938535', '392835', '22024811']

我将如何继续这样做? 我想我可以使用re,但我不知道如何应用它。

2 个答案:

答案 0 :(得分:3)

您不需要regex,您可以在列表理解中使用split

>>> l = ['29382 this is something', '2938535 hello there', '392835 dont care for this', '22024811 yup']

>>> [i.split(' ', 1)[0] for i in l]
['29382', '2938535', '392835', '22024811']

答案 1 :(得分:1)

这样的东西
>>> l=['29382 this is something', '2938535 hello there', '392835 dont care for this', '22024811 yup']
>>> import re
>>> [ re.sub(r'\D', '', x) for x in l]
['29382', '2938535', '392835', '22024811']