LookBehind - 查找出现在模式之后的字符串

LookBehind - Find string occuring after a pattern

我需要有关正则表达式查询的帮助:-

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

这是我的示例文本。我想找到已用磁盘的 %usage。即我的情况是 43%。 我正在使用 lookbehind 查找 "used" keyword 之后的事件。 这是我正在使用的模式 (?<=(\bused))(.*?\(\d*%\)) 。但这给了我 : 33.82 Gb (43%) 作为输出。我只需要 43 作为我的输出。 谁能帮忙

尝试只捕获 \d* 部分:

(\bused)(.*?\((\d*)%\))
              *   *

星号是第 3 组(您想要的组)的开始和结束位置。

或者你可以让其他组不捕获,得到第 1 组:

(?:\bused)(?:.*?\((\d*)%\))

Demo

使用python3你可以这样写:

import re
re_findall = re.findall("used:.*\(([0-9]*)%\) -",line)

行是:

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

这和Sweeper说的类似,你只是"capture"这里的数字使用python模块。