[問題] 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