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

正则表达式反向查找问题:提取磁盘已用百分比数值

提取磁盘已用百分比数值的正则解决方案

我来帮你搞定这个正则问题!你之前的正则之所以返回了多余内容,是因为匹配范围太宽泛,从used之后一直包含到了括号里的百分比。咱们直接精准定位到括号内的数字就好,给你两个实用的方案:

方案一:正向预查+捕获组(通用型)

使用这个正则表达式:

(?<=used:.*?\()(\d+)(?=%)

拆解说明:

  • (?<=used:.*?\():正向后顾断言,确保我们要匹配的数字前面是used:,并且跟着任意字符(非贪婪模式.*?)直到左括号(,这样能精准定位到已用百分比的括号位置。
  • (\d+):捕获组,匹配一个或多个数字,这就是我们最终要提取的百分比数值。
  • (?=%):正向前瞻断言,确保数字后面紧跟%,避免捕获到多余字符。

测试你的样本文本:

C: - total 79.45 Gb - used: 33.82 Gb (43%) - free 45.63 Gb (57%)

匹配结果就是43,完全符合需求。

方案二:命名捕获组(可读性更强)

如果你使用的正则引擎支持命名捕获(比如Python、Java等),可以用这个版本,后续获取结果时更直观:

(?<=used:.*?\()(?<percent>\d+)(?=%)

比如在Python中调用时,可以直接通过match.group('percent')获取数值。

为什么你的原正则不生效?

你之前的(?<=(used))(.*?\(\d*%\))问题在于:

  • .*?\(\d*%\)会匹配从used之后到(43%)的所有内容,包括中间的33.82 Gb ,所以返回了多余信息。我们需要跳过这些无关内容,直接锁定括号内的数字。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:38:57