我在内存中有以下字符串,想快速从中删除所有调试事件。我使用的正则表达式还会抓取其他事件,直到找到 DEBUG 事件。所以在这个示例中,它捕获了不止一个事件。在下面的 XML 中,它从开始到第三个事件进行捕获。它应该只为下面的这个输入选择第三个事件。
我不想在这里解析 XML。我只想从大量数据中删除调试事件(> 95% 的事件)。我试过使用解析器做同样的事情,但它在一个微型 SBC 上超时了。如果您有其他方法可以在 JavaScript 中(在浏览器之外)解决这个问题,我愿意接受任何建议。
输入:
<event type="app">
<header>
<info>1234</info>
</header>
<body>
<severity type="INFO">message</severity>
</body>
</event>
<event type="app">
<header>
<info>1235</info>
</header>
<body>
<severity type="ERROR">message</severity>
</body>
</event><event type="app">
<header>
<info>1236</info>
</header>
<body>
<severity type="DEBUG">message</severity>
</body>
</event>
<event type="app">
<header>
<info>1237</info>
</header>
<body>
<severity type="ERROR">message</severity>
</body>
</event>
正则表达式: <event type="app"(.|\n|\r\n)*?<severity type="DEBUG"(.|\n|\r\n)*?<\/event>
我在网上有这个样本:
https://regex101.com/r/JW3DWE/1
谢谢!