首页 > 解决方案 > 正则表达式仅用于字符串中的数字?

问题描述

我找不到仅包含空格或整数的字符串的正则表达式。该字符串是用户在键盘上的输入。它可以包含所有内容\n(但我猜这并不重要),但我们可以专注于 ASCII,因为它应该是英文句子下面是一些示例:

好的:

'1'
'2 3'
'   3 56 '
'8888888       333'
' 039'

不好:

'a'
'4 e'
'874 1231 88 qqqq 99'
' shf ie sh f 8'

我有这个可以找到数字:

t = [int(i) for i in re.findall(r'\b\d+\b', text)]

但我无法获得正则表达式。我的正则表达式目前是re.match(r'(\b\d+\b)+', text),但它不起作用。

标签: pythonregexintegermatchwhitespace

解决方案


>>> re.match(r'^([\s\d]+)$', text)

您需要将开始(^)和行尾($)字符放入。否则,字符串中带有字符的部分将匹配,导致误报匹配


推荐阅读