我需要有关正则表达式查询的帮助: -
C: - total 79.45 Gb - used: 33.82 Gb (43%) - free 45.63 Gb (57%)
这是我的示例文字。我想找到已用磁盘的%使用率。即在我的情况下为43%。
我使用lookbehind来查找“used”关键字后的出现次数。
这是我使用(?<=(\bused))(.*?\(\d*%\))
的模式。但是这给了我: 33.82 Gb (43%)
作为输出。我只需要43作为输出。
任何人都可以请帮助
答案 0 :(得分:1)
尝试仅捕获\d*
部分:
(\bused)(.*?\((\d*)%\))
* *
星号是第3组,即你想要的组,开始和结束的地方。
或者你可以让其他所有组都不捕获,并获得第1组:
(?:\bused)(?:.*?\((\d*)%\))
答案 1 :(得分:0)
使用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所说的,你只是&#34;捕捉&#34;这里使用python模块的数字。