在Python中搜索数字的字符串

KSH*_*HMR 0 python expression list

我有一个包含字母和数字的字符串列表.我想搜索这些数字并让它们归还给我.做这个的最好方式是什么?我是Python的新手,我查看了正则表达式,现在我正在学习它们,但我不知道在使用它们之前我的正则表达式是否足够好.

Mar*_*ers 5

要返回名为列表中所有字符串中的所有数字inputlist,可以使用列表推导:

import re

numbers = [int(num) for value in inputlist for num in re.findall('\d+', value)]
Run Code Online (Sandbox Code Playgroud)

这也将数字转换为整数.如果您需要浮点值(所以,在他们小数点的数字),加上一个模式一个由两侧的数字小数点:

numbers = [float(num) for value in inputlist for num in re.findall('\d+(?:\.\d*)', value)]
Run Code Online (Sandbox Code Playgroud)

但是,如果你只是在寻找一个字符串数字(而不是仅仅包含数字),str.isdigit()可能就足够了:

numbers = [int(value) for value in inputlist if value.isdigit()]
Run Code Online (Sandbox Code Playgroud)

请注意,这与浮点数匹配(str.isdigit()True当所有字符都是数字时;小数点不计算).