我想在splunk中提取一个字段,但是Splunk正则表达式不起作用,所以我正在编写自己的正则表达式。然而,我正在努力提取。有人能帮帮忙吗?
我的字符串:
Node ID=nbgcXYZdfdscxm2
Node ID=NBGDFDFCCXM2
Node ID=BURECXM2
预期输出:
cXYZdfds
DFDFC
BURE
到目前为止,我已经能够编写这个.*(?i)Node ID=[^nbg](?P<CM_Node_Id>[^\]cxm\d]+)
了
发布于 2017-11-23 19:01:37
代码
^Node ID=(?:nbg)?(.*?)(?:cxm\d)?$
结果
输入
Node ID=nbgcXYZdfdscxm2
Node ID=NBGDFDFCCXM2
Node ID=BURECXM2
输出
cXYZdfds
DFDFC
BURE
解释
^
Assert在lineNode ID=
开头的位置匹配此字符序列literally(?:nbg)?
可选匹配literally(.*?)
捕获任何字符任意次,但尽可能少地进入捕获组1(?:cxm\d)?
可选匹配digit$
nbg
cxm
,后跟一行末尾的发布于 2017-11-29 15:54:24
上面提供的答案应该可以正常工作。尝试使用此regex进行插拔
.*Node ID=(?:nbg)?(.*?)(?P<CM_Node_Id>.+)cxm2
https://stackoverflow.com/questions/47461827
复制相似问题