You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用正则提取img标签src值?兼容DataWeave的解决方案

解决DataWeave中提取img标签src属性的问题

因为DataWeave依赖的Java正则引擎不支持\K断言,所以需要换两种更可行的方案:

方案一:调整正则表达式(用捕获组替代\K)

把原来依赖\K的正则改成使用捕获组来提取目标值,避免不支持的语法。适配转义双引号"的正则如下:

/<img\s.*?src=\\&quot;(.*?)\\&quot;/

DataWeave示例代码

var htmlContent = '<div><img id="img1" src=&quot;https://actual-image-url&quot; /></div>'
var srcPattern = /<img\s.*?src=\\&quot;(.*?)\\&quot;/
output application/json
---
srcPattern.find(htmlContent)[1] // 输出:"https://actual-image-url"

这里用非贪婪匹配.*?避免匹配过多内容,通过捕获组(.*?)获取src的真实值,再从匹配结果数组中取索引1的元素。

方案二:使用DataWeave的HTML解析功能(更可靠)

正则处理HTML容易受属性顺序、空格变化等影响,用parseHTML函数解析结构化HTML会更鲁棒:

DataWeave示例代码

var htmlContent = '<div><img id="img1" src=&quot;https://actual-image-url&quot; alt="sample" /></div>'
output application/json
---
// 提取所有img标签的src属性,替换转义引号得到真实URL
parseHTML(htmlContent).root.*img.@src map ($ replace /&quot;/ with "")

这个方法直接解析HTML节点,精准获取属性值,再处理转义字符,适合复杂HTML场景。

内容的提问来源于stack exchange,提问作者Panneer Selvam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 16:32:43