我正在尝试编写一些正则表达式来解析 Hyperic HQ 生成的警报中的信息。警报以电子邮件的形式出现,主题行如下:
"[HQ] !!! - Alert: My Demo Website Alert Resource: demo.myserver.net Apache Web Server State: fixed"
长话短说,我需要能够始终如一地获取“Apache Web 服务器”部分,而不管主机名可能甚至不存在。我知道主机名总是以“myserver.net”结尾。
我拥有的正则表达式是:
/Resource:\s.*(?<=mydomain.net)?\s(.*)\s(?=State)/
我期望这将匹配 and 之间的零个或多个字符"Resource:"
,"State:"
可选地跟随(但不包括)主机名。
不幸的是,它返回的是"Server"
,即我要匹配的位的最后一个字。无论主机名是否在字符串中,都会发生这种情况。
任何人都可以帮忙吗?
编辑:下面乍得提供的解决方案
/Resource:\s(?:.*.myserver.net)?(.*)\sState/