SPLUNK REGEX
我们有一些数据,其中包含我们想要从源路径中提取的文件夹层次结构,原始数据看起来像这样:
源=/usr/local/intranet/areas/ua1/output/MUN
我们想创建2 Splunk内联正则表达式来提取"内部网";和输出
有人能帮帮我吗
感谢老实说,我不确定这是否是你想用正则表达式解决的那种工作。你可能更倾向于通过拆分来解析字符串然后从数组中选择你需要的?
无论如何,您都可以这样做:
输入:/usr/local/intranet/areas/ua1/output/MUN
正则表达式:(?:/.+?){2}/([^/]+)(?:/.+?){2}/([^/]+)
则组1将匹配intranet
,组2将匹配output
。
(?:/.+?){2}
-匹配前斜杠后面的任意字符两次。所以这个匹配/usr/local
。/([^/]+)
-匹配前斜杠,然后在组中匹配部分的内容,直到下一个斜杠。这将匹配/intranet
,但将intranet
存储在组1中。
然后我们只需重复此操作以获得您想要的下一个片段。
如果你需要两个单独的模式,或者想只匹配相关的部分,而不是把它们放在一起,那么像这样,假设全局修饰符是禁用的:
(?<=/)[^/]+(?=(?:/[^/]+){4}$)
-匹配intranet
.(?<=/)[^/]+(?=/[^/]+$)
-匹配output
这个使用后看(?<=…)
和前看(?=…)
而不是匹配,所以它不包括在最终结果中,不需要组。否则,它遵循基本相同的逻辑。