消息:/merlion/dpa2/cn133ta/j4_sryuo/j4_02_sv_ip
我正在尝试找到一种方法来删除消息中定义的字符串之前和之后的字符串。
在此消息中,常量值为 dpa2,我想丢弃 dpa2(包括)之前的任何内容,以及"cn133ta/"。只想保留"j4_sryuo/j4_02_sv_ip"。
cn133ta的位置将是动态值,因此它不是一个常量字符串。希望这是有道理的。
目前,我已经尝试了下面的gsub:
mutate { gsub => [ "dir_path", "/[^./]+/tpa2/", "/" ] }
但是我找不到丢弃 AFTER 字符串的方法,在本例中为"cn133ta/"。
谢谢
您可以使用
mutate { gsub => [ "dir_path", "^.*?/dpa2/[^/]+/", "" ] }
查看正则表达式演示
如果dpa2
子部分紧随第一个子部分之后,请使用您的方法,
^/[^/]+/dpa2/[^/]+/
^^^^^^
请参阅此正则表达式演示。
图案详细信息
^
- 字符串的开头.*?
- 除换行符字符以外的任何 0+ 字符,尽可能少/dpa2/
- 文本字符串[^/]+/
- 除/
以外的 1+ 个字符,然后是/
。