Python解析Markdown,批量替换MarkDown内的图片链接

Python目前貌似没有直接解析Markdown文件的库,一般只有提取库,就是只能从Markdown文件中批量提取图片,基本原理都是要把Markdown渲染成html,再解析html拿到p style=\\”display:none\\” data-type=\\”other\\” data-w=\\”1165\\” style=\\”line-height: 1.75;border-radius: 4px;display: block;margin: 0.1em auto 0.5em;\\” title=\\”null\\”>

a8395cf79bafadbae764195a8a88866b.png

但我的markdown文件的内容里面的链接并没有正确写入相对链接:

Python解析Markdown,批量替换MarkDown内的图片链接
82e7b27e6ecf4125bcbbeff567e3a672.png

也就是说,现在的路径是错的,如果我用markdown编辑器打开,比如marktext,显示效果如下:

Python解析Markdown,批量替换MarkDown内的图片链接
002e59144a6b2df66ee371d680a38612.png

现在需要批量把这个路径修改成正确的路径。

如果只有单个文件,当然直接就查找替换就行了,多个文件的时候才可能需要用到这种批量替换

解决方案

这里我使用的是python,没有引入第三方库,都是原生的系统库,因为这只是一个简单的正则表达式,字符串替换,文件操作而已。

接下来上源码

\\\"\\\"\\\"
图片正则:!\\\\[.*?\\\\]\\\\(.*?\\\\)
1. 先用正则批量,找出所有图片
2. 把图片要替换成的最终结果,保存到字典里面,key代表旧,value代表新值
3. 再重新遍历整个文档内容,直接匹配替换,不要正则
4. 最后写入文件
\\\"\\\"\\\"

import re
import os

def p style=\\\"display:none\\\" data-type=\\\"other\\\" data-w=\\\"1183\\\" style=\\\"line-height: 1.75;border-radius: 4px;display: block;margin: 0.1em auto 0.5em;\\\" title=\\\"null\\\">

ddbf9b5b4b85d956b090c291f392b728.png

打开查看一下:

e0dfe17c24d6580dd386424ca636e1c4.png

OK,显示正常。

原创文章,作者:网络技术联盟站,如若转载,请注明出处:https://www.sudun.com/ask/49744.html

Like (0)
网络技术联盟站的头像网络技术联盟站
Previous 2024年5月11日
Next 2024年5月11日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注