[問題] js中如何用正規表達式匹配成對的div

看板Ajax作者 (紫氣東來)時間5年前 (2019/05/12 16:49), 編輯推噓2(2010)
留言12則, 6人參與, 5年前最新討論串1/1
有一段字串這樣: 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> 想了好久解不出 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.120.160.203 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1557650983.A.19E.html

05/12 18:45, 5年前 , 1F
如果你是在html上處理 用document.createElement()比較快
05/12 18:45, 1F

05/12 23:30, 5年前 , 2F
不太懂為什麼要這樣處理,你是要取代內容還是產生元件?
05/12 23:30, 2F

05/13 15:22, 5年前 , 3F
HTML 要用 HTML parser,可以考慮例如 cheerio 或 jquery,
05/13 15:22, 3F

05/13 15:22, 5年前 , 4F
不要用 regex
05/13 15:22, 4F

05/13 15:23, 5年前 , 5F
不然直接先開 element 再 set innerHTML 再往下用 DOM API
05/13 15:23, 5F

05/13 15:23, 5年前 , 6F
爬也是個方式
05/13 15:23, 6F

05/13 17:23, 5年前 , 7F
emmet 有一個 htmlMatcher 專門用來尋找對應的 HTML tag
05/13 17:23, 7F

05/13 17:23, 5年前 , 8F
05/13 17:23, 8F

05/17 21:41, 5年前 , 9F

05/28 16:55, 5年前 , 10F
這個行為正規表述無法查到的
05/28 16:55, 10F

05/28 16:55, 5年前 , 11F
這是屬於上下文無關文法(context free grammar)
05/28 16:55, 11F

05/28 16:59, 5年前 , 12F
想不出來當然是正常的,另外正規為CFG子集
05/28 16:59, 12F
文章代碼(AID): #1Srzud6U (Ajax)
文章代碼(AID): #1Srzud6U (Ajax)