使用正则表达式从html片段中提取文本,可匹配到多行但却只能捕获到最后一行,如何解决?
正则表达式
/^(?:<[pb]>)+((?:\w(\s)?)+:)(?:<\/[pb]>)+\n?(?:<p>((?:\w+\s*[,.:;()]?\s*)+)<\/p>\n?)+$/gm
- 多行目标字符串
<p><b>Description:</b></p>
<p>This is a guitar accessory set includes 3pcs pickup covers, 1 volume and 2pcs knobs and 1 switch tip. Made of solid
ABS plastic material. The covers are 48, 50 and 52mm spaced, fits for electric guitar. Great guitar accessory</p>
<p></p>
<p></p>
<p><b>Specification:</b></p>
<p>Made of ABS plastic material</p>
<p>Color: pink , Letter: White</p>
<p>Hole spacing: 48mm; 50mm; 52mm</p>
<p><b>Package Includes:</b></p>
<p>3 x Pickup cover</p>
<p>3 x Knob(1 volume knob and 2 knobs)</p>
<p>1 x Switch tip</p>
- 匹配及捕获效果:
回复
1个回答
test
2024-07-09
- 不要用正则匹配 HTML 这种强结构且高兼容性的文本,有很多现成的 DOM 树工具可以用。
- 中间的组本来就不能自动解开成数组,自己想办法分解吧。
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容