使用正则表达式获取值

Get value with regex

在 zabbix 中,我正在监视几个具有相同名称但不同文件夹中的故事的进程。所以我正在尝试创建发现规则以使用 wmi 获取有关所有进程的信息。问题是:我需要从字符串中获取文件夹名称来创建正确的 zabbix 项目。你能帮我创建正确的正则表达式公式来获取文件夹吗?

例如:有3个字符串

%E:%test%dc1%dc.exe%
%E:%test%test2%dc2%dc.exe%
%E:%test%test2%test3%dc3%dc.exe%

从每个字符串中我需要单词

dc1
dc2
dc3

使用 % 作为分隔符,这将获取字符串中的倒数第二个标记

[^%]+(?=%[^%]*%$)

Example

如果路径中始终包含 .exe 文件,则此方法可以正常工作。它匹配文件扩展名之前百分号之间的最后一个文本:

\%([^\%]+)\%[^\%^\.]+\Q.exe\E