首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个Rex表达式

多个Rex表达式
EN

Stack Overflow用户
提问于 2015-07-18 23:23:02
回答 2查看 5.9K关注 0票数 3

我使用下面的rex表达式在我的原始数据中搜索以下字段:

地址线1地址线2地址线3地址线4和邮政编码

代码语言:javascript
复制
| rex "Address Line 1=(?<address1>[^,]*)"  | rex "Address Line 2=(?<address2>[^,]*)"  | rex "Address Line 3=(?<address3>[^,]*)"  | rex "Address Line 4=(?<address4>[^,]*)"  | rex "Postcode=(?<postcode>[^,]*)"  |

从表达式中可以看出,这些字段中的每个字段都被分配了一个变量,因此对于地址行1,变量是address1,地址行2是'address2‘,依此类推。

正如你肯定会看到的,上面的表达式包含多个rex表达式,谁能告诉我,有没有办法把它们组合成一个rex表达式。

EN

回答 2

Stack Overflow用户

发布于 2017-07-07 20:47:51

https://docs.splunk.com/Documentation/Splunk/6.6.1/SearchReference/Rex页上的第一个示例显示了如何使用单个rex命令提取多个字段。如果您的_raw是多行的,请根据需要使用\n\rhttp://docs.splunk.com/Documentation/Splunk/6.6.1/Knowledge/AboutSplunkregularexpressions

票数 0
EN

Stack Overflow用户

发布于 2022-01-11 20:48:27

您只需在正则表达式中放入几个组匹配。下面是一个示例:

| rex field=_raw "\"SubjectId\":\"(?P<User>[^\"]*)\".*\"GrantType\":\"(?P<GrantType>\w*)\".*\"Category\":\"(?P<Category>\w+)\".*\"Name\":\"(?P<desc>[^\"]*)\".*\"TimeStamp\":\"(?P<TimeStamp>[^\"]*)\".*\"RemoteIpAddress\":\"(?P<IP>(?:[0-9]{1,3}\.){3}[0-9]{1,3})\"" |

当然,这需要提前知道字段的顺序,这在搜索中链接多个'rex‘表达式时不是必需的。

我确实发现,对于复杂的示例,首先在regex101.app中添加几行代码来验证表达式会更容易(我使用的是本地安装的应用程序,但网站可以工作)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31492632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档