用简单的例子学习正则表达式

时间:2019-03-16 13:39:38

标签: python

我一直在阅读一些文档并查看示例。我有些意外的行为,想知道是否有人可以帮助我了解正则表达式在做什么

string = "(ID: 10427645)" ## the ID length can vary

c = re.findall(r"\d*", string)
print(c)
## ['', '', '', '', '', '10427645', '', '']

我希望它只打印数字,但是看起来它为字符串中没有匹配项的每个项目返回一个空字符串。

如何告诉正则表达式只返回一串数字(长度可变)?

1 个答案:

答案 0 :(得分:4)

*表示“ 0或更大”。因此,无论是否有数字,它都能匹配所有位置。

要只匹配1个或多个数字,请使用+

>>> re.findall(r"\d+", string)
['10427645']