如何用正则表达式将含‘Graphic source’的<a>标签转为<img>标签
解决方案
正则匹配与替换规则
匹配正则:
<small>\s*<a[^>]+href="([^"]+)"[^>]*>Graphic source<\/a>\s*<\/small>
替换模板:
<img src="$1"/>
正则说明
<small>:精准匹配包裹a标签的small起始标签\s*:兼容small与a标签之间的任意空白字符(空格、换行等)<a[^>]+:匹配a标签的起始部分,[^>]+会匹配所有a标签的属性内容(直到遇到>)href="([^"]+)":捕获href属性的具体值,括号内的内容会作为替换时的引用变量$1[^>]*:匹配a标签中除href外的其他所有属性,确保不管a标签有多少额外属性都能被忽略>Graphic source<\/a>:强制匹配a标签内的文本必须是Graphic source,直接排除不符合的a标签\s*<\/small>:兼容a闭合标签与small闭合标签之间的空白,匹配完整的small闭合标签
效果验证
针对你提供的示例:
原内容:
<small><a href="https://www.url.com/image.png" target="_blank" rel="noopener">Graphic source</a></small>
替换后:
<img src="https://www.url.com/image.png"/>
该正则会自动忽略所有文本不是Graphic source的<small><a>...</a></small>结构,同时完全丢弃a标签的其他属性,只保留href值作为img的src属性。
内容的提问来源于stack exchange,提问作者Samuele
相关产品推荐
相关产品推荐

