用正则表达式将字符串分成两组,仅显示最后一组

时间:2018-08-16 17:01:33

标签: regex

我有一些相似的属性。首先,我需要选择属性,其次,我想通过正则表达式获得值。

数据:

BlockSize:4096
TotalBlocks:68822
HighWater:68764
FreeBlocks:2553
RecordBlocks:25378
BIBlocksize:8192
BIClustersize:512

将它们分为两组的正则表达式为:(FreeBlocks):(.*$)。现在,我只想要值(2e组)作为结果。我想在Zabbix密钥中使用这些表达式。

1 个答案:

答案 0 :(得分:1)

根据文档zabbix使用PCRE。在这种情况下,您可以使用\K重置报告的匹配项的起点,并与数字\d+匹配一次或多次,或者使用.*匹配零个或多个字符。

这将为您提供一个匹配项,而不是一个捕获组。如果您确实想要该组,则可以使用括号(\d+)

FreeBlocks:\K\d+$

要在冒号之前全部匹配,可以使用否定的字符类:

^[^:]+:\K\d+$