gpt4 book ai didi

javascript - 正则表达式查找最小可能的匹配

转载 作者:行者123 更新时间:2023-12-02 16:56:52 24 4
gpt4 key购买 nike

我正在使用 JavaScript 正则表达式 /(<mos>[\s\S]*?<\/mos>)/g在日志文件中查找 XML block ,大致如下所示:

Entry 1: <mos>...</mos>
Entry 2: <mos>...</mos>

但是,有时日志记录过程会遇到错误并且未完成向文件写入条目,在这种情况下,它看起来像这样:

Entry 1: <mos>Error!
Entry 2: <mos>...</mos>

发生这种情况时,正则表达式会匹配开头 <mos> 中的所有内容。条目 1 中的标签到结束 </mos>条目 2 中的标记会导致稍后处理 XML 时出现问题。

似乎首先以某种方式匹配结束标记,然后查找相应的开始标记可以避免这种情况,但我不知道如何做到这一点,也不知道是否可以使用正则表达式。

<小时/>

澄清:...由开始和结束标记分隔的 block 中可以包含换行符。

最佳答案

这个应该适合您的需求:

<mos>((?:[\s\S](?!<mos>))+?)</mos>

Regular expression visualization

Debuggex 的可视化

RegExr 上的演示

<小时/>

如果使用 JS 正则表达式文字,请不要忘记转义斜杠。

关于javascript - 正则表达式查找最小可能的匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26102838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com