在typora中利用正则表达式,批量处理图片
一,png格式
在 Typora 中批量将 HTML 图片标签转换为简化的 Markdown 图片链接,且忽略 alt
和 style
属性,可以按照以下步骤操作:
- 打开 Typora 并加载你的文档。
- 按下
Ctrl + H
(在 Windows/Linux 上)或Cmd + Option + F
(在 macOS 上)打开查找和替换对话框。 - 在“查找内容”框中输入以下表达式:
<img\s+src="images/(\d+\.png)"\s+alt="[^"]*"\s+style="[^"]*"\s*/>
- 在“替换为”框中输入:

- 确保勾选了“使用正则表达式”选项。
- 点击“全部替换”按钮应用更改。
正则表达式解释:
<img\s+
:查找<img
标签开始,后面跟着一个或多个空白字符。src="images/(\d+\.png)"
:查找src
属性,并且捕获匹配images/
后面跟着一串数字和.png
扩展名的字符串。\s+alt="[^"]*"
:查找alt
属性,但不捕获其值(匹配任意非引号字符)。\s+style="[^"]*"
:查找style
属性,同样不捕获其值。\s*/>
:查找标签的结束部分,可能包含空白字符。
替换规则解释:

:Markdown 图片语法,其中$1
代表第一个捕获组(图片文件名)。
请注意,正则表达式中的 \d+
假定了文件名是由数字组成,.png
是文件扩展名。如果你的图片文件名包含其他字符或格式,需要相应地调整正则表达式。
在执行替换之前,请确保备份你的文档,以防止任何意外的数据丢失。
二,gif格式
在 Typora 中批量将 HTML 图片标签转换为 Markdown 格式,并去除 alt
和 style
属性,适用于动态图(如 .gif
文件),可以按照以下步骤操作:
- 打开 Typora 并加载你的文档。
- 按下
Ctrl + H
(在 Windows/Linux 上)或Cmd + Option + F
(在 macOS 上)打开查找和替换对话框。 - 在“查找内容”框中输入以下表达式:
<img\s+src="images/(.*?)"\s+alt="[^"]*"\s+style="[^"]*"\s*/>
- 在“替换为”框中输入:

- 确保勾选了“使用正则表达式”选项。
- 点击“全部替换”按钮应用更改。
正则表达式解释:
<img\s+
:查找以<img
开始的部分,后面跟着一个或多个空白字符。src="images/(.*?)"
:匹配src
属性,并使用非贪婪模式.*?
捕获images/
后面直到下一个引号之前的所有字符,即文件路径和文件名。\s+alt="[^"]*"
:匹配alt
属性,但不捕获其值。\s+style="[^"]*"
:匹配style
属性,同样不捕获其值。\s*/>
:匹配标签的结束部分,可能包含空白字符。
替换规则解释:

:Markdown 图片语法,$1
代表第一个捕获组的值,即src
属性中捕获的文件路径和文件名。
请注意,这个正则表达式假设 src
属性的值始终以 "images/" 开头,并且文件名可能包含任何字符,直到遇到下一个引号。如果你的图片路径有所不同,或者有其他特殊情况,可能需要调整正则表达式以适应不同的情况。
在执行替换之前,请确保备份你的文档,以防止任何意外的数据丢失或错误替换。
三,无style格式
在Typora中批量将HTML图片标签转换为Markdown格式,并去除alt
属性(但保留src
属性),可以按照以下步骤操作:
- 打开Typora并加载你的文档。
- 按下
Ctrl + H
(在 Windows/Linux 上)或Cmd + Option + F
(在 macOS 上)打开查找和替换对话框。 - 在“查找内容”框中输入以下表达式:
<img\s+src="images/([^"]+)"\s+alt="[^"]*"\s*/>
- 在“替换为”框中输入:

- 确保勾选了“使用正则表达式”选项。
- 点击“全部替换”按钮应用更改。
正则表达式解释:
<img\s+
:查找以<img
开始的部分,后面跟着一个或多个空白字符。src="images/([^"]+)"
:匹配src
属性,并捕获images/
后面直到下一个引号之前的所有字符,即文件路径和文件名。\s+alt="[^"]*"
:匹配alt
属性,但不捕获其值。\s*/>
:匹配标签的结束部分,可能包含空白字符。
替换规则解释:

:Markdown 图片语法,$1
代表第一个捕获组的值,即src
属性中捕获的文件路径和文件名。
请注意,这个正则表达式假设 src
属性的值始终以 "images/" 开头,并且文件扩展名是 .png
。如果你的图片路径有所不同,或者有其他特殊情况,可能需要调整正则表达式以适应不同的情况。
在执行替换之前,请确保备份你的文档,以防止任何意外的数据丢失或错误替换。
相关文章:

在typora中利用正则表达式,批量处理图片
一,png格式 在 Typora 中批量将 HTML 图片标签转换为简化的 Markdown 图片链接,且忽略 alt 和 style 属性,可以按照以下步骤操作: 打开 Typora 并加载你的文档。按下 Ctrl H(在 Windows/Linux 上)或 Cmd…...
构建LangChain应用程序的示例代码:33、如何在LangChain框架中使用HumanInputChatModel来模拟人工输入的聊天模型教程
除了HumanInputLLM,LangChain还提供了一个伪聊天模型类,可以用于测试、调试或教育目的。这允许您模拟对聊天模型的调用,并模拟如果人类接收到这些消息会如何响应。 在这篇笔记中,我们将介绍如何使用这个模型。 我们首先在代理中…...

虚拟机使用桥接模式网络配置
1、获取本机的网络详细信息 windowr 输入cmd 使用ipconfig -all 一样即可 在自己的虚拟机中设置网络 虚拟机中的ip ---------192.168.36.*,不要跟自己的本机ip冲突 网关-----------192.168.36.254 一样即可 dns -----------一样即可,我多写了几个&am…...

韩顺平0基础学java——第24天
p484-508 System类 常见方法 System.arrycopy(src,0,dest,1,2); 表示从scr的第0个位置拷贝2个,放到目标数组索引为1的地方。 BigInteger和BigDecimal类 保存大整数和高精度浮点数 BigInte…...
leecode N皇后
深度优先遍历,然后回溯 思考得到的技巧: 1.先思考怎么用学过的数据结构解题 2.回溯不只需要知道最后一步,还需要知道之前所走的每一步 3. 棋盘的生成,.join([]),可以变列表为字符串 看题解得到的技巧: 1.妙啊…...

2024050802-重学 Java 设计模式《实战模板模式》
重学 Java 设计模式:实战模版模式「模拟爬虫各类电商商品,生成营销推广海报场景」 一、前言 黎明前的坚守,的住吗? 有人举过这样一个例子,先给你张北大的录取通知书,但要求你每天5点起床,12点…...

UNIAPP-ADB无线调试
ADB下载 SDK 平台工具版本说明 | Android Studio | Android Developers (google.cn) 环境变量配置 ADB版本查看 adb version 手机使用数据线连接到电脑 手机需要授权adb调试(开发人员选项里面) CMD输入命令 adb tcpip 5555 到了这一步你手机已经启动了adb服务了&…...

【stm32-新建工程】
stm32-新建工程 ■ 下载相关STM32Cube官方固件包(F1,F4,F7,H7)■ 1. ST官方搜索STM32Cube■ 2. 搜索 STM32Cube■ 3. 点击获取软件■ 4. 选择对应的版本下载■ 5. 输入账号信息■ 6. 出现下载弹框,等待下载…...
写点什么吧,作为STM32系列的开篇……
自从本科毕业后,就再也没碰过单片机…… 自从研究生毕业后,就再也没碰过硬件…… 自以为以前单片机玩的熟得很,特别是ATMEGA系列的AVR单片机,由于老师的推荐,本科时花了好多精力在这个系列单片机上面…… 本科时STM…...
代码随想录算法训练营第十天| 232.用栈实现队列|225. 用队列实现栈|20. 有效的括号|1047. 删除字符串中的所有相邻重复项
232.用栈实现队列 文档讲解:代码随想录 视频讲解:栈的基本操作! | LeetCode:232.用栈实现队列_哔哩哔哩_bilibili 知道要用两个栈实现,具体咋做忘了。队列的特性是先进先出,栈是先进后出,入队操…...

Pulsar 社区周报 | No.2024-06-07 | Apache Pulsar 新分支 3.3 版本发布
“ 各位热爱 Pulsar 的小伙伴们,Pulsar 社区周报更新啦!这里将记录 Pulsar 社区每周的重要更新,每周发布。 ” 本期主题:Apache Pulsar 新分支 3.3 版本发布 Apache Pulsar 新分支 3.3 版本发布:Apache Pulsar 3.3.0[1…...

Go源码--sync库(3):sync.Pool(2)
回收 回收其实就是将 pool.local 置为空 可以让垃圾回收器回收 我们来看下 源码 func init() {// 将 poolCleanup 注册到 gc开始前的准备工作处理器中在 STW时执行runtime_registerPoolCleanup(poolCleanup) }这里注册了清理程序到GC前准备工作 也就是发生GC前需要执行这段代…...

Go如何在本地引用以及发布并引用自定义工具包
如何引用本地自定义工具包 我们首先要准备两个项目,分别为需要引入的工具包和当前项目。 myutils、myproject1. myutils为我们的项目1-工具包 package mypakgeimport "strings"func IsContains(s string) bool {if strings.Contains(s, "a")…...

使用了代理IP怎么还会被封?代理IP到底有没有效果
代理IP作为一种网络工具,被广泛应用于各种场景,例如网络爬虫、海外购物、规避地区限制等。然而,很多用户在使用代理IP的过程中却发现自己的账号被封禁,这让他们不禁产生疑问:使用了代理IP怎么还会被封?代理…...
在WSL2的Ubuntu中安装和使用Docker/Podman
在WSL2的Ubuntu中安装和使用Docker/Podman 0. 目的 当网络环境良好(例如在公司,能直接访问Google等)时, Docker/Podman 安装和使用不是问题。 当网络环境不佳(例如在家里),要把 WSL2 的 Ubun…...
【WEEK16】Learning Objectives and Summaries【Spring Boot】【English Version】
Learning Objectives: Learning SpringBoot Learning Content: Reference video tutorials【狂神说Java】SpringBoot最新教程IDEA版通俗易懂Dubbo and Zookeeper Integration Learning time and outputs: Week16 TUE~FRI 2024.6.11【WEEK16】 【DAY2】Dubbo和Zookeeper集成第…...
AI大模型会让搜索引擎成为历史吗?
AI大模型会让搜索引擎成为历史吗? 随着人工智能技术的不断发展,AI大模型已经在许多领域展现出了强大的能力。从自然语言处理到图像识别,AI大模型的应用越来越广泛。在这种背景下,有人开始提出一个问题:AI大模型是否可…...

SpringSecurity6从入门到实战之SpringSecurity6自定义认证规则
SpringSecurity6从入门到实战之SpringSecurity6自定义认证规则 Spring Security 中默认所有的 http 请求都需要先认证通过后,才能访问。那么, 如何指定不需要认证就可以直接访问的资源呢?比如 用户的登录页面和注册页面,都是不需要…...
Java IO:byte[]、char[]、String三种对象的转换
String与byte[]对象进行转换时应指定编码格式,否则有潜在的乱码问题。byte[] b s.getBytes(“utf-8”); String s new String(b,“utf-8”); Java的IO库提供了专门的管道来对这3个对象进行读写,他们是StringReader/Writer CharArrayReader/Writer Byt…...

Elasticsearch:简化数据流的数据生命周期管理
作者:来自 Elastic Andrei Dan 今天,我们将探索 Elasticsearch 针对数据流的新数据管理系统:数据流生命周期,从版本 8.14 开始提供。凭借其简单而强大的执行模型,数据流生命周期可让n 你专注于数据生命周期的业务相关方…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...

1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...

Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...