使用正则表达式从html片段中提取文本,可匹配到多行但却只能捕获到最后一行,如何解决?

作者站长头像
站长
· 阅读数 5
  • 正则表达式

    /^(?:<[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>
  • 匹配及捕获效果:使用正则表达式从html片段中提取文本,可匹配到多行但却只能捕获到最后一行,如何解决?
回复
1个回答
avatar
test
2024-07-09
  1. 不要用正则匹配 HTML 这种强结构且高兼容性的文本,有很多现成的 DOM 树工具可以用。
  2. 中间的组本来就不能自动解开成数组,自己想办法分解吧。
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容