可用正则提取HTML标签文本,如匹配 内容 中的内容;2. 可提取标签属性值,如 img 的 src;3. 可提取超链接的URL和显示文本;4. 但正则不适用于嵌套或格式错误的HTML,建议仅在简单场景使用,复杂结构应使用DOM解析器。
在处理网页内容或字符串时,经常需要从HTML中提取特定信息。虽然不推荐用正则表达式解析完整的HTML结构(应使用DOM解析器),但在简单场景下,正则表达式可以快速提取所需内容。
如果你想从某个HTML标签中提取文本,比如获取 Hello
(.*?)/g
说明:
示例代码:
const html = '第一段
第二段
'; const matches = [...html.matchAll(/(.*?)/g)]; matches.forEach(match => console.log(match[1])); // 输出:第一段,第二段
例如提取所有图片的 src 属性:
/]+src=["']([^"']+)["'][^>]*>/g说明:
示例:
const html = ''; const srcs = [...html.matchAll(/]+src=["']([^"']+)["'][^>]*>/g)]; srcs.forEach(match => console.log(match[1])); // pic1.jpg, pic2.png提取 ... 的链接地址和显示文字:
/]+href=["']([^"']+)["'][^>]*>(.*?)/g示例:
const html = `访问示例网站`; const links = [...html.matchAll(/]+href=["']([^"']+)["'][^>]*>(.*?)/g)]; links.forEach(match => { console.log('URL:', match[1]); // https://example.com console.log('文本:', match[2]); // 访问示例网站 });正则提取HTML有明显限制:
建议: 在Node.js或浏览器环境中,优先使用DOMParser或jsdom等工具。仅在轻量、可控的HTML片段中使用正则。
基本上就这些,正则适合简单提取,复杂结构还是交给解析器更稳妥。