如何用单捕获组正则提取Bluesound Node 2i指定预设图片URL
单捕获组提取Bluesound指定预设图片URL的实现方案
问题说明
解析Bluesound Node 2i设备返回的响应时受工具限制:所用解析软件仅支持单个正则捕获组。设备返回内容共包含10组预设条目,单条预设的格式示例如下:
preset url="TuneIn:s83457/http://opml.radiotime.com/Tune.ashx?id=s83457&formats=wma,mp3,aac,ogg,hls&partnerId=8OeGua6y&serial=E8:9F:80:5F:89:72" id="1" name="BBC Radio 1 98.2 (Top 40 & Pop Music)" image="http://cdn-radiotime-logos.tunein.com/s24939q.png"/
解析要求:
- 先匹配
id="1" name="字段,锚定编号为1的目标预设条目 - 提取该条目下
image属性对应的URL - 正则全程只能有1个捕获组,适配工具限制
目前已通过正则 id="1" name="(.*?)"成功提取对应预设的名称,缺少符合单捕获组要求的图片URL提取正则。
可用正则
直接使用以下正则即可满足要求:
id="1" name=".*?" image="([^"]+)"
匹配逻辑说明
- 开头的
id="1" name="为固定锚点,精准定位到1号预设的name属性起始位置,避免匹配到其他编号的预设 - 后续的
.*?为非贪婪匹配,会自动匹配完name属性的全部取值到闭合双引号为止,这部分不放入捕获组,仅做定位过渡 - 匹配到name属性结束位置后,匹配固定片段
image=",抵达图片属性值的起始位置 - 唯一的捕获组
([^"]+)会匹配所有非双引号的字符,直到image属性的闭合双引号为止,捕获到的内容就是目标图片URL - 整个正则仅包含1个捕获组,完全适配工具的能力限制,不会出现兼容性问题。
内容的提问来源于stack exchange,提问作者Soyb
相关产品推荐
相关产品推荐

