当前位置: 首页 > 知识库问答 >
问题:

在Splunk中使用rex命令创建正则表达式以返回xml子元素

邵繁
2023-03-14
<tmsTrip xmlns="removed_for_security" xmlns:ns2="removed_for_security">
   <recordType>PURCHASEDLINEHAUL</recordType>
   <eventType>DISPATCH</eventType>
   <updatedDateGMT>2020-05-21T17:22:55.000Z</updatedDateGMT>
   <origin>
      <ns2:numberCode>923</ns2:numberCode>
      <ns2:numberType>2</ns2:numberType>
   </origin>
   <destination>
      <ns2:numberCode>72</ns2:numberCode>
      <ns2:numberType>2</ns2:numberType>
   </destination>
rex field=_raw "\<ns2\:numberCode\>(?P<origin>[^\<]+)" 

我需要一只雷克斯来归还第二只72。

共有1个答案

蒋芷阳
2023-03-14

您可以告诉rex使用max_match选项返回这两个值。

| rex max_match=0 "\<ns2\:numberCode\>(?P<origin>[^\<]+)"
| eval originCode = mvindex(origin, 0), destCode = mvindex(origin, 1)

不幸的是,没有办法知道匹配的顺序,所以如果XML中的目的地在起源之前,这将失败。

您应该能够使用spath提取整个XML并引用“origin.numbercode”和“destination.numbercode”,但我没有足够的使用该命令的经验来提供更多的指导。

 类似资料:
  • 在不提取字段的情况下,我想搜索不包含“country=$”的任何事件,即事件不能以“country=”结尾。我可以将其regex为“country=(?!$)”,但这仍然需要country出现在事件中,这不是我想要的。 示例:我的搜索: 在一个常规的regex解释器中,我已经用(?!(country=$))匹配了它就足够了,但是splunk不理解这一点,并且命中了所有事件。

  • 问题内容: 我有一些用生成的uuid1字符串命名的图像。例如81397018-b84a-11e0-9d2a-001b77dc0bed.jpg。我想使用“查找”命令找出所有这些图像: 但这是行不通的。正则表达式有问题吗?有人可以帮我吗? 问题答案: 请注意,由于与整个路径匹配,因此需要在开头指定。 例: 我的find版本:

  • 问题内容: 如果我有类似“ something12”或“ something102”的字符串,我将如何在javascript中使用正则表达式来仅返回数字部分? 问题答案: 常用表达: 这将返回一个内部带有两个元素“ 102”和“ 1948948”的对象。随心所欲地操作。如果不匹配,则返回null。 串联它们: 假设您不处理复杂的小数,我想这就足够了。

  • 本文向大家介绍PowerShell中正则表达式使用例子,包括了PowerShell中正则表达式使用例子的使用技巧和注意事项,需要的朋友参考一下 本文介绍PowerShell中正则表达式的使用,PowerShell的正则表达式与微软其它语言的正则表达式是一样的,使用非常方便。 正则表达式本身是怎么回事,本文不做讨论,反正PowerShell还是用的微软的那一套正则表达式规则,学VB、ASP、C#等语

  • 问题内容: 使用Python正则表达式如何获得/返回?所有Python回报是: 问题答案: 对象始终为true,如果不匹配,则返回。只是测试真实性。

  • 我在一个多语言网站上工作,并已选择使用每种语言的自定义URL,例如: 两者都指向城市控制员的指数方法。 在每个页面上都有一个切换语言的选项,它会在我的路由中查找以匹配控制器、视图和语言。 因此,如果我在荷兰语页面上,它会找到英文版的正确网址,即“城市”而不是“steden”。 在我开始使用更复杂的正则表达式之前,一切都很好。 我有这些正则表达式,它们将匹配我所需的URL: 在我的代码中,我可以访问