Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式以查找可能的最小匹配项_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式以查找可能的最小匹配项

Javascript 正则表达式以查找可能的最小匹配项,javascript,regex,Javascript,Regex,我使用JavaScript正则表达式/([\s\s]*?)/g在日志文件中查找大致如下所示的XML块: Entry 1: <mos>...</mos> Entry 2: <mos>...</mos> Entry 1: <mos>Error! Entry 2: <mos>...</mos> 条目1:。。。 条目2:。。。 但是,有时日志记录过程会遇到错误,并且没有完成向文件中写入条目的操作,在这种情况下,情况

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

Entry 1: <mos>...</mos>
Entry 2: <mos>...</mos>
Entry 1: <mos>Error!
Entry 2: <mos>...</mos>
条目1:。。。
条目2:。。。
但是,有时日志记录过程会遇到错误,并且没有完成向文件中写入条目的操作,在这种情况下,情况如下所示:

Entry 1: <mos>...</mos>
Entry 2: <mos>...</mos>
Entry 1: <mos>Error!
Entry 2: <mos>...</mos>
条目1:错误!
条目2:。。。
发生这种情况时,正则表达式将匹配从条目1中的开始标记到条目2中的结束标记的所有内容,这将在以后处理XML时导致问题

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



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

这一行应该适合您的需要:

((?:[\s\s](?!)+)

可视化

演示



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

当您想要的是“一切都取决于任何一个”
,而无法使用正则表达式解析[X]HTML时,为什么要匹配
[\s\s]*
“。或XML:@Mike'Pomax'Kamermans条目中的
可以跨越多行。我已经更新了我的问题,将其包括在内。@gion_13这不是XML,而是一个包含XML()的日志文件。看起来很棒!谢谢