Perl正则如何让两类事件的匹配结果均输出到第一捕获组
Perl正则合并解决方案
最终匹配正则
^Event:\s+(?|(\S+ Flapping)|\S+\s+\S+\s+(\S+))$
实现说明
- 采用Perl专属的分支重置语法(
(?| )结构),该结构下不同分支的捕获组编号会共享计数,所有匹配结果统一输出到第一捕获组,完全匹配你的应用读取要求 - 第一个分支对应
Started Flapping类场景:匹配结果直接存入第一捕获组 - 第二个分支对应
CRIT -> OK类场景:最终状态值存入第一捕获组
效果验证
- 输入
Event: Started Flapping,第一捕获组返回Started Flapping,符合预期 - 输入
Event: CRIT -> OK,第一捕获组返回OK,符合预期
内容的提问来源于stack exchange,提问作者marcohald
相关产品推荐
相关产品推荐

