我试图在某些标签之间删除代码。它来自JavaScript插件,它有多个出现。
例如:
/*<ltIE8>*/ ╗
if (!item.hasOwnProperty) return false; ╣ this should match / go away
/*</ltIE8>*/ ╝
return item instanceof object; // this should not go away/match
...
/*<ltIE8>*/ ╗
if (!window.addEvenetListener) return false; ╣ this should match / go away
/*</ltIE8>*/ ╝
return window.addEvent;
我想匹配/删除这两个块。
尝试使用像\/\*<ltIE8>\*\/(?!=\/\*<\/ltIE8>\*\/)([\s\S]+)
之类的前瞻,但最终匹配从第一个发生到最后一个发生,并且缺少中间发生的匹配。
示例:https://regex101.com/r/iD6mL8/1
任何sugestions? (我将使用JavaScript / NodeJS进行这些替换。)
答案 0 :(得分:0)
我吮吸正则表达式,但这似乎有效:
(\/\*<ltIE8>\*\/)[\s\S]*?(\/\*<\/ltIE8>\*\/)
这个解决方案的关键是?
,它告诉正则表达式不要贪婪,这基本上意味着当它找到下一个/*</ltIE8>*/
而不是一直到最后一个时停止