python - Python正则表达式从科学论文中提取数字
问题描述
我不知道我是否在正确的地方发布了这个,但我希望我能得到一些人的帮助。
我是一名心理学家,在编程方面不是很熟练。尽管如此,我正在开发一种使用正则表达式从 PDF 中提取统计值的工具。
出现了一个我自己无法解决的问题。
我需要从以下术语中提取数字:
'F(1,110) = 15.18'
我需要一个正则表达式来提取括号中的两个数字,一个正则表达式来提取“=”之后的数字。注意:括号中的数字可以更改,并且每个字符串都不同。
有人可以帮帮我吗?
这是我到目前为止所尝试的:
r'(F(\d+.\d+))',
r'(F([:digit:], [:digit:]) = \d+.\d+)'
未检测到任何值。有什么建议么?
解决方案
您可以使用 3 个捕获组来转义括号以逐字匹配它们。
如果您还可以使用单个模式而不是 2 个单独的模式:
F\((\d+),(\d+)\) = (\d+(?:\.\d+)?)
F
从字面上匹配\(
匹配(
(\d+),(\d+)
在一个组中捕获 2 次 1+ 数字,中间用逗号\)
匹配)
=
匹配由 2 个空格包围的等号(\d+(?:\.\d+)?)
在匹配 1 个以上数字的组中捕获,并带有可选的小数部分
如果最后一部分应包含小数,则可以(\d+\.\d+)
改用。
例如
import re
regex = r"F\((\d+),(\d+)\) = (\d+(?:\.\d+)?)"
s = "F(1,110) = 15.18"
print(re.findall(regex, s))
结果
[('1', '110', '15.18')]
推荐阅读
- mysql - 查询列出与指定用户回答类似问题的用户
- angular - 在检查要在单元测试中定义的 gridOptions.api 后触发 onGridReady 事件时,gridOptions.api 为 null
- java - Java 2D 旋转 BufferedImage
- javascript - D3 GeoJSON 仅在矩形中渲染部分地图
- python - 如何让我的屏幕在 pygame 中放大和缩小?
- javascript - JS选择
- 跟随一个标签
- esp32 - esp-idf:我不能在组件中包含 mdebtls 目录
- python - 按行垂直扩展数据框并保持相同值的有效方法?
- c++ - VS 自动链接在 Windows 上使用 vcpkg 安装的 SDL2 库
- python - 将熊猫框架中的周六和周五行值求和并分配到周五的行值
包含“foo”的标签
所以我有这个小 chrome 扩展项目,我试图弄清楚如何在包含特定单词的“h2”元素之后找到页面上的第一个“ul”元素。
网页的外观示例...
<div> <h2>Foo</h2> // find the first <h2> tag containing "Foo" <ul></ul&