我有一个list
:
['14147618', '(100%)', '6137776', '(43%)', '5943229', '(42%)', '2066613', '(14%)', 'TOTAL']
也作为字符串
'14147618 (100%) 6137776 (43%) 5943229 (42%) 2066613 (14%) TOTAL\n'
使用正则表达式,如何返回:
['14147618', '6137776, '5943229', 2066613']
最佳答案
您根本不需要RegEx,只需使用此列表理解功能,就可以过滤出仅包含数字的数据
print [item for item in data if item.isdigit()]
# ['14147618', '6137776', '5943229', '2066613']
或者您也可以使用
filter
内置函数,例如print filter(str.isdigit, data)
# ['14147618', '6137776', '5943229', '2066613']
编辑:如果您将整个数据作为单个字符串,则可以根据空格字符拆分数据,然后使用相同的逻辑
data = '14147618 (100%) 6137776 (43%) 5943229 (42%) 2066613 (14%) TOTAL\n'
print [item for item in data.split() if item.isdigit()]
# ['14147618', '6137776', '5943229', '2066613']
print filter(str.isdigit, data.split())
# ['14147618', '6137776', '5943229', '2066613']