You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Ruby正则表达式提取代码覆盖率结果中的总百分比

从覆盖率报告中提取总百分比的正则方案

先把你的覆盖率报告贴出来方便参考:

Name                                  Stmts   Miss  Cover  Missing
-------------------------------------------------------------------
src/global_information.py                8      1    88%   6
src/settings.py                         38      0   100%
src/storage_backends.py                  4      4     0%   1-5
src/urls.py                              8      0   100%
users/admin.py                           1      0   100%
users/apps.py                            3      3     0%   1-5
users/forms.py                           5      0   100%
users/models.py                          1      0   100%
users/tests/tests_views_urls.py          5      0   100%
users/urls.py                            5      0   100%
users/views.py                           1      1     0%   1
-------------------------------------------------------------------
TOTAL                                   79      9    89%

你已经能匹配到TOTAL那一行,现在只需要调整正则来单独提取最后的百分比值,这里给你两种靠谱的方案:

方案1:使用捕获组(兼容性强)

修改你的第一个正则,把百分比部分用括号包裹成捕获组:

TOTAL\s+\d+\s+\d+\s+(\d+\%)

这个正则会匹配TOTAL开头的整行,同时把89%这样的百分比字符串存到第一个捕获组里。你只需要读取这个捕获组的结果,就是你要的总覆盖率百分比。

方案2:使用正向 lookbehind(直接返回目标值)

如果不想处理捕获组,可以用正向断言直接定位到百分比:

(?<=TOTAL\s+\d+\s+\d+\s)\d+\%

这个表达式的逻辑是:匹配数字+%的内容,且这个内容的前面必须是TOTAL加上两个数字段(对应Stmts和Miss的数值)以及对应的空格。这样正则匹配的结果直接就是89%,不需要额外处理。

两种方案都能精准提取目标值,第一种兼容性更好(几乎所有正则引擎都支持),第二种更直接,适合支持变长lookbehind的现代正则环境(比如Python 3.7+、JavaScript ES2018+等)。

内容的提问来源于stack exchange,提问作者Marco Herrarte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:23:43