python - 正则表达式仅用于字符串中的数字?

标签 python regex integer match whitespace

我找不到只包含空格或整数的字符串的正则表达式。 该字符串是用户在键盘上的输入。它可以包含除 \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) 但它不起作用。

最佳答案

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

需要将行首(^)和行尾($)字符放入,否则字符串中包含字符的部分会匹配,导致误报匹配

关于python - 正则表达式仅用于字符串中的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50177113/

相关文章:

python - 在centos7.4上安装python2.6

python - Python 中的 Pool.apply_async 函数按顺序打印数字

java - 从 double 转换为 int 而不截断为零

android模拟器eclipse退出应用程序,

integer - 为什么无符号n位整数的最大值2 ^ n-1而不是2 ^ n?

python - 使用 dropbox API 下载指定文件夹中的所有图像,而不是子文件夹

python - xpath 标签不知道该放什么

regex - 需要一个正则表达式来返回从最后 "/"到最后 "-"的文本

regex - 在 perl 中匹配日期

xml - gtksourceview 语言文件正则表达式 - 向后看