[问题] js中如何用正规表达式匹配成对的div

楼主: Numino (键盘战略局参谋总长)   2019-05-12 16:49:39
有一段字串这样:
var strHTML="...<div id='div1'>...<div id='div2'>...</div>
</div><div id='div3'>...</div>..."
怎么才能取到 <div id='div1'>......</div> 里的内容
用 /<div id='div1'>([\s\S]+)<\/div>/ 会取太多
用 /<div id='div1'>([\s\S]+?)<\/div>/ 会取太少
需要取到配对的那个 </div>
想了好久解不出
感谢
作者: y3k (激流を制するは静水)   2019-05-12 18:45:00
如果你是在html上处理 用document.createElement()比较快
作者: mackliu (回不去的大叔)   2019-05-12 23:30:00
不太懂为什么要这样处理,你是要取代内容还是产生元件?
作者: Hevak (Arthow Eshes)   2019-05-13 15:22:00
HTML 要用 HTML parser,可以考虑例如 cheerio 或 jquery,不要用 regex不然直接先开 element 再 set innerHTML 再往下用 DOM API爬也是个方式
作者: eight0 (欸XD)   2019-05-13 17:23:00
emmet 有一个 htmlMatcher 专门用来寻找对应的 HTML taghttps://is.gd/ThpDRr
作者: vi000246 (Vi)   2019-05-17 21:41:00
作者: NobleDino (高贵恐龙)   2019-05-28 16:55:00
这个行为正规表述无法查到的这是属于上下文无关文法(context free grammar)想不出来当然是正常的,另外正规为CFG子集

Links booklink

Contact Us: admin [ a t ] ucptt.com