regex - 带有组名并包含标签的正则表达式 XML
问题描述
我有一个看起来像这样的 XML
Executing request: POST https://[website]:
<?xml version=1.0 encoding=UTF-8 standalone=yes?><request>[data]</request>
我想对所有内容进行正则表达式,包括请求打开和关闭标签,并将组命名为 raw_message,但我不知道该怎么做。我使用了 regex101,它是有道理的,但不匹配,调试器没有帮助我找出我做错了什么。
解决方案
不要使用正则表达式来处理 XML,总是使用 XML 解析器;要转换 XML,请使用 XSLT(或 XQuery,如果合适)。使用正则表达式,除非你很聪明,否则会产生可怕的性能问题,但更重要的是,它们总是会出错。即使它们适用于您的所有测试用例,也总是可以设计出一个样本 XML 文档来击败它们。(如果您想知道原因,这是因为 XML 不是计算机科学意义上的“常规语言”:它是一种递归语言,而正则表达式不进行递归。)
推荐阅读
- r - 如何在 R 的回归输出中显示变量的名称(存储在列表中)?
- javascript - Javascript addEventListener 在某些情况下不工作,但在其他情况下工作
- angular - 在 Angular 中输入只能包含 13 个数字
- amazon-web-services - SageMaker SkLearn - 模型保存到提供的存储桶,而不是完整的提供路径
- shell - 父源外部文件,子无权访问其中的函数
- javascript - 计划任务在没有 setTimeout 的情况下运行
- multithreading - 异步代码是否浪费处理能力
- django - 使用 update_or_create() 获取“重复键值违反唯一约束”(非默认字段是 unique_together)
- angular - 等待通过 websocket 的承诺
- java - 为什么在方法中将 { 5,7,5,8,1} 作为数组传递会在 Java 中引发错误?