作者Numino (紫气东来)
看板Ajax
标题[问题] js中如何用正规表达式匹配成对的div
时间Sun May 12 16:49:39 2019
有一段字串这样:
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://webptt.com/cn.aspx?n=bbs/Ajax/M.1557650983.A.19E.html
1F:→ y3k: 如果你是在html上处理 用document.createElement()比较快 05/12 18:45
2F:→ mackliu: 不太懂为什麽要这样处理,你是要取代内容还是产生元件? 05/12 23:30
3F:→ Hevak: HTML 要用 HTML parser,可以考虑例如 cheerio 或 jquery, 05/13 15:22
4F:→ Hevak: 不要用 regex 05/13 15:22
5F:→ Hevak: 不然直接先开 element 再 set innerHTML 再往下用 DOM API 05/13 15:23
6F:→ Hevak: 爬也是个方式 05/13 15:23
7F:推 eight0: emmet 有一个 htmlMatcher 专门用来寻找对应的 HTML tag 05/13 17:23
10F:→ NobleDino: 这个行为正规表述无法查到的 05/28 16:55
11F:→ NobleDino: 这是属於上下文无关文法(context free grammar) 05/28 16:55
12F:→ NobleDino: 想不出来当然是正常的,另外正规为CFG子集 05/28 16:59