使用正则表达式提取多个值(仅值,不需要字段名)

Extracting multi values with regex ( Only values, don't need Fieldname )

我正在尝试使用 regex101 提取以下 5 个数据。

[^=]+\s=\s(?<value_v2c>[^=]+)(?:varbind-delimiter|$)

↓↓↓↓

https://regex101.com/r/z06cgp/1

[1] 整数:3

[2] 字符串:“灰色”

[3] 字符串:“红色”

[4] 字符串:“i-13-130213-E3VM”

[5] 字符串:“可能发生虚拟机故障转移_ - 事件:vSphere HA 重新启动虚拟机 (20780030) 摘要:vSphere HA 重新启动虚拟机摘要:vSphere HA 重新启动主机 je22v-p01bvs25.shamrock.local 上的虚拟机 i-13-130213-E3VM在集群 je22v-p01b 中 Date: 11/24/2021 4:01:07 PM VM: i-13-130213-E3VM H​​ost: je22v-p01bvs25.shamrock.local Resource pool: je22v-p01b Data center: jp-east-22v参数:eventTypeId = com.vmware.vc.ha.VmRestartedByHAEvent objectId = vm-147534 objectName = i-13-130213-E3VM severity = warning "

但我终生无法提取 [5] 部分。 有人可以帮我吗?

我还需要使用相同的正则表达式来提取以下数据(regex101)。此示例执行提取,但我需要使用上面相同的正则表达式。

↓↓↓↓

https://regex101.com/r/UNEbvi/1

提前致谢!!!

否定字符 class [^=]+ 直到 varbind-delimiter 或最后一部分的字符串结尾才会匹配,因为该字符存在于文本中。

您可以改用具有正向预测的非贪婪匹配:

[^=]+\s=\s(?<value_v2c>.*?)(?=varbind-delimiter|$)

Regex demo