原文链接:https://waynegong.cn/posts/8598.html
背景
在使用 markdown 的超链接语法 [text](link)
时,无法支持 <a></a>
标签的其他属性(例如 target
、rel
)
所以希望将现有用 markdown 链接语法的内容批量替换成 <a></a>
标签
正则解析
通过正则表达式 (?<!!)\[(.*?)\]\((.*?)\)
即可完成匹配,其中 $1
分组为链接文字, $2
分组为链接地址。
整个正则表达式分为三部分:
- 第一部分
(?<!!)
向后否定断言,表示不匹配以!
开始的内容,避免误伤到 markdown 的图片语法![text](img src)
; - 第一部分
\[(.*?)\]
匹配 markdown 链接语法的前半部分[text]
,并将结果保存到$1
分组; - 第一部分
\(