python - 正则表达式仅用于字符串中的数字?
问题描述
我找不到仅包含空格或整数的字符串的正则表达式。该字符串是用户在键盘上的输入。它可以包含所有内容\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)
您需要将开始(^)和行尾($)字符放入。否则,字符串中带有字符的部分将匹配,导致误报匹配
推荐阅读
- c - 为什么 C 中的 sizeof 运算符在 NOT 运算的情况下会给出不同的输出?
- laravel - laravel 过滤关系
- ruby-on-rails - Rails 和 sidekiq:是否可以为工作分配名称?
- python-3.x - 在图书推荐系统中形成训练矩阵时出错
- react-native - NavigationsActions.Navigate 不工作
- algorithm - 计算矩形选择所选择的所有框的算法
- typo3 - 如何解决 VHS ViewHelper v:replace 的一个奇怪问题?
- python - 如何在 Python 的 notify_run 中获取当前注册的频道
- c# - 使用 AngleSharp 和 CSS 选择器的 C# Web 抓取知识面板/Google 页面
- reactjs - 单击 BrowserRouter 链接时隐藏全屏导航