首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式以找到最小的可能匹配

正则表达式以找到最小的可能匹配
EN

Stack Overflow用户
提问于 2014-09-29 14:56:38
回答 1查看 552关注 0票数 0

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

代码语言:javascript
复制
Entry 1: <mos>...</mos>
Entry 2: <mos>...</mos>

但是,有时日志记录过程会遇到错误,并没有完成对文件的条目写入,在这种情况下,如下所示:

代码语言:javascript
复制
Entry 1: <mos>Error!
Entry 2: <mos>...</mos>

当这种情况发生时,正则表达式匹配所有内容,从条目1中的开始的<mos>标记到条目2中的关闭</mos>标记,这将在以后处理XML时造成问题。

似乎在某种程度上,首先匹配结束标记,然后回头查找它们对应的开始标记会避免这种情况,但我不知道如何做到这一点,也不知道正则表达式是否可行。

Clarification:由开始和结束标记分隔的块中的...可以包括换行符。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-29 15:53:57

这个应该适合你的需要:

代码语言:javascript
复制
<mos>((?:[\s\S](?!<mos>))+?)</mos>

德布盖克斯实现可视化

基于RegExr的演示

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26102838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档