此问题在此处已有答案:
RegEx match open tags except XHTML self-contained tags(34个答案)
5天前关闭。
我有一个正则表达式:
/<([\w-_]+)[^>]+if="([\w_]+)">.*?<\/\1>/g
并且它应该与类似XML的标记相匹配:
console.log('<hi if="bruh"> stuff in between <other if="yes"> </other></hi>'.match(/<([\w-_]+)[^>]+if="([\w_]+)">.*?<\/\1>/g));
这显然会返回整个原始字符串作为匹配。问题是,XML可以嵌套,而且我更希望正则表达式匹配一次完成,因为性能要求和需要匹配的字符串很大。在这种情况下,我还希望<other if="yes"> </other>
作为匹配。这对正则表达式(至少在Javascript中)是可能的吗?如果是,怎么做?
我也很好奇用嵌套替换html标签中的文本的最快方法,以及是否有一种方法可以使这个正则表达式更快。
目前唯一的解决方案是多次传递,或者可能是一种定制的解析器,但是执行起来需要很多时间,我真的希望能够避免这种情况。
1条答案
按热度按时间g6ll5ycj1#
它比
.match()
快得多,因为.match()
返回数组