python - 如何使用正则表达式从字符串中提取特定类型的数字?
问题描述
考虑这个字符串:
text = '''
4 500,5
12%
1,63%
568768,74832 days in between
34 cars in a row'''
如您所见,有简单的数字、中间有空格的数字、带逗号的数字,等等。因此,4 500,5
被视为一个独立的、单独的数字。用逗号和空格提取数字很容易,我发现模式如下:
pattern = re.compile(r'(\d+ )?\d+,\d+')
但是,我正在努力提取像 12 和 34 这样的简单数字。我尝试使用(?!...)
,[^...]
但这些选项不允许我排除其他数字中不需要的部分。
解决方案
((?:\d+ )?\d+,\d+)|(\d+(?! \d))
我相信这会做你想要的(Regexr 链接:https ://regexr.com/695tc )
为了捕获“简单”数字,它会查找 [一个或多个数字],其后不跟 [一个空格和另一个数字]。
我进行了编辑,以便您可以根据需要适当地使用捕获组。
推荐阅读
- text - 如何在pygame的屏幕上显示文本
- scheme - 方案:可能是 SICP 中的一个错字。1.3.2. 我对吗?
- php - Bootstrap:因为当我选择一个复选框时,另一个被标记?用 php 回显
- oracle - OSB 12c 在标头中发送 Cookie
- ruby-on-rails - 使用 form_with 时出现“ActionController::InvalidAuthenticityToken”错误
- python - SOAP API 在 JSON 响应中获取 Python 中的工作日数据?
- python - Flask,是否可以在检索参数后返回自己的 URL
- javascript - 如何为 Node.js 中数组中的每个项目创建条形码?
- python - 没有空格的 argparse 选项
- java - 是否有 Java 8 方法来填充以下地图?