关于正则表达式:如何在python中使用regexp查找字符串中的所有数字

How can i find all digits in a string using regexps in python

本问题已经有最佳答案,请猛点这里访问。

你好,iam试图找到一个字符串中的所有数字,但它返回一个空列表

我的代码:

1
2
3
import re
re.findall(r'/d','5585858')
>>>> []

请问有什么错误?


您有一个错误的模式,您首先需要\d,对于获取所有数字,您可以将+添加到\d以匹配1个或多个数字组合:

1
re.findall(r'\d+','5585858')

另外,根据您的字符串,您可以使用其他功能,如re.search,这些功能可能更高效。

如果要将字符串转换为列表,只需使用list

1
2
>>> list('5585858')
['5', '5', '8', '5', '8', '5', '8']

'\d+'代替'/d'

1
2
3
 >>> import re
 >>> re.findall(r'\d+', '5585858')
 ['5585858']


你甚至不需要正则表达式。

1
2
>>> [number for number in '5585a858' if number.isdigit()]
['5', '5', '8', '5', '8', '5', '8']