当前位置: 首页 > news >正文

在typora中利用正则表达式,批量处理图片

一,png格式

在 Typora 中批量将 HTML 图片标签转换为简化的 Markdown 图片链接,且忽略 altstyle 属性,可以按照以下步骤操作:

  1. 打开 Typora 并加载你的文档。
  2. 按下 Ctrl + H(在 Windows/Linux 上)或 Cmd + Option + F(在 macOS 上)打开查找和替换对话框。
  3. 在“查找内容”框中输入以下表达式:
<img\s+src="images/(\d+\.png)"\s+alt="[^"]*"\s+style="[^"]*"\s*/>
  1. 在“替换为”框中输入:
    ![](images/$1)
  2. 确保勾选了“使用正则表达式”选项。
  3. 点击“全部替换”按钮应用更改。

正则表达式解释:

  • <img\s+:查找 <img 标签开始,后面跟着一个或多个空白字符。
  • src="images/(\d+\.png)":查找 src 属性,并且捕获匹配 images/ 后面跟着一串数字和 .png 扩展名的字符串。
  • \s+alt="[^"]*":查找 alt 属性,但不捕获其值(匹配任意非引号字符)。
  • \s+style="[^"]*":查找 style 属性,同样不捕获其值。
  • \s*/>:查找标签的结束部分,可能包含空白字符。

替换规则解释:

  • ![]($1):Markdown 图片语法,其中 $1 代表第一个捕获组(图片文件名)。

请注意,正则表达式中的 \d+ 假定了文件名是由数字组成,.png 是文件扩展名。如果你的图片文件名包含其他字符或格式,需要相应地调整正则表达式。

在执行替换之前,请确保备份你的文档,以防止任何意外的数据丢失。

二,gif格式

在 Typora 中批量将 HTML 图片标签转换为 Markdown 格式,并去除 altstyle 属性,适用于动态图(如 .gif 文件),可以按照以下步骤操作:

  1. 打开 Typora 并加载你的文档。
  2. 按下 Ctrl + H(在 Windows/Linux 上)或 Cmd + Option + F(在 macOS 上)打开查找和替换对话框。
  3. 在“查找内容”框中输入以下表达式:
    <img\s+src="images/(.*?)"\s+alt="[^"]*"\s+style="[^"]*"\s*/>
  4. 在“替换为”框中输入:
    ![](images/$1)
  5. 确保勾选了“使用正则表达式”选项。
  6. 点击“全部替换”按钮应用更改。

正则表达式解释:

  • <img\s+:查找以 <img 开始的部分,后面跟着一个或多个空白字符。
  • src="images/(.*?)":匹配 src 属性,并使用非贪婪模式 .*? 捕获 images/ 后面直到下一个引号之前的所有字符,即文件路径和文件名。
  • \s+alt="[^"]*":匹配 alt 属性,但不捕获其值。
  • \s+style="[^"]*":匹配 style 属性,同样不捕获其值。
  • \s*/>:匹配标签的结束部分,可能包含空白字符。

替换规则解释:

  • ![]($1):Markdown 图片语法,$1 代表第一个捕获组的值,即 src 属性中捕获的文件路径和文件名。

请注意,这个正则表达式假设 src 属性的值始终以 "images/" 开头,并且文件名可能包含任何字符,直到遇到下一个引号。如果你的图片路径有所不同,或者有其他特殊情况,可能需要调整正则表达式以适应不同的情况。

在执行替换之前,请确保备份你的文档,以防止任何意外的数据丢失或错误替换。

三,无style格式

在Typora中批量将HTML图片标签转换为Markdown格式,并去除alt属性(但保留src属性),可以按照以下步骤操作:

  1. 打开Typora并加载你的文档。
  2. 按下 Ctrl + H(在 Windows/Linux 上)或 Cmd + Option + F(在 macOS 上)打开查找和替换对话框。
  3. 在“查找内容”框中输入以下表达式:
    <img\s+src="images/([^"]+)"\s+alt="[^"]*"\s*/>
  4. 在“替换为”框中输入:
    ![](images/$1)
  5. 确保勾选了“使用正则表达式”选项。
  6. 点击“全部替换”按钮应用更改。

正则表达式解释:

  • <img\s+:查找以 <img 开始的部分,后面跟着一个或多个空白字符。
  • src="images/([^"]+)":匹配 src 属性,并捕获 images/ 后面直到下一个引号之前的所有字符,即文件路径和文件名。
  • \s+alt="[^"]*":匹配 alt 属性,但不捕获其值。
  • \s*/>:匹配标签的结束部分,可能包含空白字符。

替换规则解释:

  • ![]($1):Markdown 图片语法,$1 代表第一个捕获组的值,即 src 属性中捕获的文件路径和文件名。

请注意,这个正则表达式假设 src 属性的值始终以 "images/" 开头,并且文件扩展名是 .png。如果你的图片路径有所不同,或者有其他特殊情况,可能需要调整正则表达式以适应不同的情况。

在执行替换之前,请确保备份你的文档,以防止任何意外的数据丢失或错误替换。

相关文章:

在typora中利用正则表达式,批量处理图片

一&#xff0c;png格式 在 Typora 中批量将 HTML 图片标签转换为简化的 Markdown 图片链接&#xff0c;且忽略 alt 和 style 属性&#xff0c;可以按照以下步骤操作&#xff1a; 打开 Typora 并加载你的文档。按下 Ctrl H&#xff08;在 Windows/Linux 上&#xff09;或 Cmd…...

构建LangChain应用程序的示例代码:33、如何在LangChain框架中使用HumanInputChatModel来模拟人工输入的聊天模型教程

除了HumanInputLLM&#xff0c;LangChain还提供了一个伪聊天模型类&#xff0c;可以用于测试、调试或教育目的。这允许您模拟对聊天模型的调用&#xff0c;并模拟如果人类接收到这些消息会如何响应。 在这篇笔记中&#xff0c;我们将介绍如何使用这个模型。 我们首先在代理中…...

虚拟机使用桥接模式网络配置

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

韩顺平0基础学java——第24天

p484-508 System类 常见方法 System.arrycopy&#xff08;src&#xff0c;0&#xff0c;dest&#xff0c;1,2&#xff09;&#xff1b; 表示从scr的第0个位置拷贝2个&#xff0c;放到目标数组索引为1的地方。 BigInteger和BigDecimal类 保存大整数和高精度浮点数 BigInte…...

leecode N皇后

深度优先遍历&#xff0c;然后回溯 思考得到的技巧&#xff1a; 1.先思考怎么用学过的数据结构解题 2.回溯不只需要知道最后一步&#xff0c;还需要知道之前所走的每一步 3. 棋盘的生成&#xff0c;.join([]),可以变列表为字符串 看题解得到的技巧&#xff1a; 1.妙啊&#xf…...

2024050802-重学 Java 设计模式《实战模板模式》

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

UNIAPP-ADB无线调试

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

【stm32-新建工程】

stm32-新建工程 ■ 下载相关STM32Cube官方固件包&#xff08;F1&#xff0c;F4&#xff0c;F7&#xff0c;H7&#xff09;■ 1. ST官方搜索STM32Cube■ 2. 搜索 STM32Cube■ 3. 点击获取软件■ 4. 选择对应的版本下载■ 5. 输入账号信息■ 6. 出现下载弹框&#xff0c;等待下载…...

写点什么吧,作为STM32系列的开篇……

自从本科毕业后&#xff0c;就再也没碰过单片机…… 自从研究生毕业后&#xff0c;就再也没碰过硬件…… 自以为以前单片机玩的熟得很&#xff0c;特别是ATMEGA系列的AVR单片机&#xff0c;由于老师的推荐&#xff0c;本科时花了好多精力在这个系列单片机上面…… 本科时STM…...

代码随想录算法训练营第十天| 232.用栈实现队列|225. 用队列实现栈|20. 有效的括号|1047. 删除字符串中的所有相邻重复项

232.用栈实现队列 文档讲解&#xff1a;代码随想录 视频讲解&#xff1a;栈的基本操作&#xff01; | LeetCode&#xff1a;232.用栈实现队列_哔哩哔哩_bilibili 知道要用两个栈实现&#xff0c;具体咋做忘了。队列的特性是先进先出&#xff0c;栈是先进后出&#xff0c;入队操…...

Pulsar 社区周报 | No.2024-06-07 | Apache Pulsar 新分支 3.3 版本发布

“ 各位热爱 Pulsar 的小伙伴们&#xff0c;Pulsar 社区周报更新啦&#xff01;这里将记录 Pulsar 社区每周的重要更新&#xff0c;每周发布。 ” 本期主题&#xff1a;Apache Pulsar 新分支 3.3 版本发布 Apache Pulsar 新分支 3.3 版本发布&#xff1a;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如何在本地引用以及发布并引用自定义工具包

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

使用了代理IP怎么还会被封?代理IP到底有没有效果

代理IP作为一种网络工具&#xff0c;被广泛应用于各种场景&#xff0c;例如网络爬虫、海外购物、规避地区限制等。然而&#xff0c;很多用户在使用代理IP的过程中却发现自己的账号被封禁&#xff0c;这让他们不禁产生疑问&#xff1a;使用了代理IP怎么还会被封&#xff1f;代理…...

在WSL2的Ubuntu中安装和使用Docker/Podman

在WSL2的Ubuntu中安装和使用Docker/Podman 0. 目的 当网络环境良好&#xff08;例如在公司&#xff0c;能直接访问Google等&#xff09;时&#xff0c; Docker/Podman 安装和使用不是问题。 当网络环境不佳&#xff08;例如在家里&#xff09;&#xff0c;要把 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大模型会让搜索引擎成为历史吗&#xff1f; 随着人工智能技术的不断发展&#xff0c;AI大模型已经在许多领域展现出了强大的能力。从自然语言处理到图像识别&#xff0c;AI大模型的应用越来越广泛。在这种背景下&#xff0c;有人开始提出一个问题&#xff1a;AI大模型是否可…...

SpringSecurity6从入门到实战之SpringSecurity6自定义认证规则

SpringSecurity6从入门到实战之SpringSecurity6自定义认证规则 Spring Security 中默认所有的 http 请求都需要先认证通过后&#xff0c;才能访问。那么&#xff0c; 如何指定不需要认证就可以直接访问的资源呢&#xff1f;比如 用户的登录页面和注册页面&#xff0c;都是不需要…...

Java IO:byte[]、char[]、String三种对象的转换

String与byte[]对象进行转换时应指定编码格式&#xff0c;否则有潜在的乱码问题。byte[] b s.getBytes(“utf-8”); String s new String(b,“utf-8”); Java的IO库提供了专门的管道来对这3个对象进行读写&#xff0c;他们是StringReader/Writer CharArrayReader/Writer Byt…...

Elasticsearch:简化数据流的数据生命周期管理

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

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 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&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

【JavaWeb】Docker项目部署

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

OPENCV形态学基础之二腐蚀

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

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣&#xff08;LeetCode&#xff09; ​遍历字符串​&#xff1a;通过外层循环逐一检查每个字符。​遇到 ? 时处理​&#xff1a; 内层循环遍历小写字母&#xff08;a 到 z&#xff09;。对每个字母检查是否满足&#xff1a; ​与…...

Python Ovito统计金刚石结构数量

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

day36-多路IO复用

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