首页 > 解决方案 > 带有组名并包含标签的正则表达式 XML

问题描述

我有一个看起来像这样的 XML

Executing request: POST https://[website]:
<?xml version=1.0 encoding=UTF-8 standalone=yes?><request>[data]</request>

我想对所有内容进行正则表达式,包括请求打开和关闭标签,并将组命名为 raw_message,但我不知道该怎么做。我使用了 regex101,它是有道理的,但不匹配,调试器没有帮助我找出我做错了什么。

标签: regexxmlsplunk

解决方案


不要使用正则表达式来处理 XML,总是使用 XML 解析器;要转换 XML,请使用 XSLT(或 XQuery,如果合适)。使用正则表达式,除非你很聪明,否则会产生可怕的性能问题,但更重要的是,它们总是会出错。即使它们适用于您的所有测试用例,也总是可以设计出一个样本 XML 文档来击败它们。(如果您想知道原因,这是因为 XML 不是计算机科学意义上的“常规语言”:它是一种递归语言,而正则表达式不进行递归。)


推荐阅读