如何在Python中移除Markdown链接的括号与链接地址,保留文本?
解决Markdown链接转纯文本的问题
你要把带Markdown链接的字符串转换成只保留链接文本的格式,之前的正则没写对,导致结果有误。直接给你正确的写法:
正确正则与代码
import re text = "Some sentance startx here blah blah [Example](https://someSite.com/another/blah/blah)" pattern = r"\[([^\]]+)\]\([^\)]+\)" result = re.sub(pattern, r"\1", text) print(result)
运行后输出就是你要的:Some sentance startx here blah blah Example
为啥之前的正则不行?
- 你写的
[\[\]]只会匹配单个[或],没覆盖整个链接的结构 - 域名只限制了
ru,但你的示例里是com,匹配范围太窄 - 最重要的是没捕获需要保留的链接文本,直接替换成空字符串,自然会剩下
[Example这种残次品
这个正则的逻辑是:
\[([^\]]+)\]:匹配[开头,捕获]之前的所有内容(也就是链接文本)\([^\)]+\):匹配(开头到)结束的整个URL部分- 替换时用
\1引用捕获到的链接文本,直接替换掉整个[文本](URL)结构
内容的提问来源于stack exchange,提问作者ATOM
相关产品推荐
相关产品推荐

