正则表达式的使用示例--Everything文件检索批量重命名工具
一、引言
Everything是一款非常实用的文件搜索工具,它可以帮助您快速定位并查找计算机中的文件和文件夹。Everything搜索文件资料之神速,有使用过的朋友们都深有体会,相对于Windows自带的搜索功能,使用Everything,可以让我们享受使用搜索引擎一般地在本地硬盘上搜索我们的文件信息。
本文将为您提供一些基本的使用指南,并介绍我的使用经验,希望大家可以更好地利用Everything这个工具。
二、本文使用场景
文件检索、文件重命名
今天小编在进行数据处理的时候,遇到一个文件重命名的问题,在网上查了好多内容,也没有找到合适的方法,小编自己测试的方法,现将经验的方法分享给大家,希望对大家有帮助。
以下是具体的问题情况描述如下:
-
- 搜索文件名称以数字开头,且数字的位数为1位数字;
-
- 文件的格式后缀为
.jpg
;
- 文件的格式后缀为
-
- 文件名称中包含汉字;
-
- 将文件名称的1位数字修改为2位数字,就是在文件名是数字开头的1位数字的前面加个0;
-
- 需要修改的文件数量100+,一个一个的改太费劲了(还是得想办法啊);
-
- 文件夹内还包含子文件夹,子文件夹内的文件名称也需要修改;
例如:
需要将 “
1测试数据16.jpg
” 修改为 “01.测试数据.jpg
”注意在01后面需要加一个
.
并去掉汉字后面的数字
需要说明的是修改文件名称这样的问题也可以使用python编写修改文件名称的py文件。由于我之前安装了Everything这个工具【点击此处下载】,所以想偷个懒,想结合正则表达式,利用Everything的重命名功能。(有没有不知道的Everything可以重命名的小伙伴呢?----莫名的优越感,嘿嘿!)
三、正则表达式
要想发挥Everything高效的优势,那就必须得懂得使用正则表达式
。
正则表达是的语法在此我就不再赘述了。在网上一搜有很多:
想要学习的伙伴,小编推荐网站-点击此处打开【菜鸟教程】进行学习
本文可能用到用到的知识点:
正则表达式元字符和特性
字符匹配
- 普通字符:普通字符按照字面意义进行匹配,例如匹配字母 “a” 将匹配到文本中的 “a” 字符。
- 元字符:元字符具有特殊的含义,例如
\d
匹配任意数字字符,\w
匹配任意字母数字字符,.
匹配任意字符(除了换行符),\p{Han}
匹配汉字等字符…- 量词
*
:匹配前面的模式零次或多次。
+
:匹配前面的模式一次或多次。
?
:匹配前面的模式零次或一次。
{n}
:匹配前面的模式恰好 n 次。
{n,}
:匹配前面的模式至少 n 次。
{n,m}
:匹配前面的模式至少 n 次且不超过 m 次。- 字符类
[ ]
:匹配括号内的任意一个字符。例如,[abc] 匹配字符 “a”、“b” 或 “c”。
[^ ]
:匹配除了括号内的字符以外的任意一个字符。例如,[^abc] 匹配除了字符 “a”、“b” 或 “c” 以外的任意字符。- 边界匹配
^
:匹配字符串的开头。
$
:匹配字符串的结尾。
\b
:匹配单词边界。
\B
:匹配非单词边界。- 分组和捕获
( )
:用于分组和捕获子表达式。(本文需要着重理解的地方,可以结合后面文件重命名进行理解)
(?: )
:用于分组但不捕获子表达式,(暂时还没有实践案例)。- 特殊字符
\
:转义字符,用于匹配特殊字符本身。
.
:匹配任意字符(除了换行符)。
|
:用于指定多个模式的选择。
四、使用示例分享
1.如何使用正则表达式匹配汉字(此方法比较便捷)?
- 使用元字符进行汉字匹配,下述表示的是匹配任意一个汉字字符。
regex:\p{Han}
- 使用元字符进行汉字匹配,下述表示的是匹配任意一个汉字字符开头。可以使用
^
筛选开头,$
筛选结尾。点击菜单栏
/帮助
/正则表达式语法
即可查看,不再赘述。
regex:^\p{Han}
- 至于应为英文字字母
regex:[a-zA-Z]
- 至于数字
regex:[0-9]或者regex:\d #注意不是一位数字,只要文件(夹)名称是包含数字就被检索出来
如下图所示:
2.如何找到以1位数字开头的文件?
以下几种方法等价^
和$
放在括号里面和外面都一样,后面我将介绍括号的用法。
regex:^([0-9])$
regex:(^[0-9])$
regex:(^[0-9]$)
regex:(^[0-9]{1}$)...
或者:
regex:(^\d$)
regex:(^\d)$
regex:^(\d)$
regex:^(\d{1})$如果想检索2位数字那就把{1}改成{2},依次类推
regex:(^[0-9]{2}$)
regex:^(\d{2})$...
如下图所示,检索结果只有4502个,大大的提升效率(后续检索表达式不再逐一截图了,各位可以自行修改表达式进行尝试!)
3.使用转义字符\
,转义符号.
。
4.想要检索某个文件夹下面的文件
那就直接在搜索框内输入文件路径,点击空格再添加相应的正则表达公式。
需要说明的是,在进行检索的过程中,如果检索的路径中包含子文件夹,那么如何排除子文件夹的遍历结果呢?只需要在需要检索的路径前面添加一个parent:[需要检索的路径]
,如下所示:
parent:C:\Users\XXX\Desktop\
上述代码只会检索到桌面上的文件和文件夹,子文件夹内的内容将不会被检索到。
4.如何进行重命?(本文重点介绍内容)
打开Everything,在搜索框内输入需要重命名的文件路径,根据需求设置检索的正则表达式,就会显示搜索的文件了。
选中需要重命名的文件,右键
/重命名
即可弹出重命名的窗口。
首选筛选区文件(在右上角可以选择文件类型,也可直接写在搜索框内)
例1:
回到以文章开头的问题,如何进行文件重命名?
regex:(^\d)\p{Han}+\d{2}\.jpg
正则表达式 | 说明 |
---|---|
(^\d) | 表示以1位数字开头 |
\p{Han}+ | 1个或者多个汉字符号(注意* 表示0个或者多个) |
\d{2} | 匹配两位数字 |
\.jpg | 匹配后后缀名为.jpg ,\ 是为了转义. |
例2:
对比类型 | 看图理解 |
---|---|
添加parent: | ![]() |
不添加parent: | ![]() |
重命名 | ![]() |
这里我们讲一下()
保存子表达式的匹配的用法【着重理解的内容】。
说明:
原始文件名称的表达
可以理解为二次检索,在第一次检索的基础上在进行检索,满足要求的就可以基于规则进行重命名。
例如:
(^\d{2})(\p{Han}+)(\d{2,})(\.jpg)$
上述表达是中:
(^\d{2})
是两位数字。在新命名的表达式中对应的就是\1
(\p{Han}+)
匹配1个或多个汉字。在新命名的表达式中对应的就是\2
(\d{2,})
至少匹配2位数字;在新命名的表达式中对应的就是\3
(\.jpg)$
匹配后缀为.jpg
的文件;在新命名的表达式中对应的就是\4
\0
默认的是原始文件名。
同时满足上述要求的是:01测试数据比52.jpg
12比423.jpg
12比423.jpg因此新文件名的表达是为
00\1\2\4
重命名后的的文件前面会添加00,同时去掉后面的数字,重命名后的结果为0001.测试数据比.jpg
0012.比.jpg
0012.比.jpg其余的不符合正则表达是的规则,因此不进行重命名!
整体的思想(个人的看法)是使用正则表达式将原始的文件名称进行分段,然后使用\0
-\9
进行拼接,类似与python列表的切片。
至此问题完美解决,不知我讲的清不清楚,如有疑问,欢迎留言讨论,我会继续完善我的文章内容。
五、小结
-
\p{Han}
是一个 Unicode 字符类,表示中文汉字。在正则表达式中使用 \p{Han} 可以匹配任何属于 Unicode 汉字类别(如中文、日文或韩文等东亚语言中的汉字)的字符。 -
正则表达式提供了一种灵活且强大的方式来查找、替换、验证和提取文本数据。在很多语言(如 JavaScript、Python、Java、Perl 等)中都有嵌入,了解并熟练运用正则表达式,便得心应手。
-
Everything是一款功能强大且易于使用的文件搜索工具,结合正则表达式使用可以达到事半功倍的效果。
- 详细的使用说明请参见博主sy670733的文章Everything使用详解
- 请参阅博主gaheadus的文章Everything搜索_使用方法
-
小编系需要说的是数据安全的问题,Everything虽然好用,如果设置不当,将会导致信息泄露,因此在不明确具体功能的情况下,不要随意点击。以下是关于Everything信息安全的介绍,感兴趣的小伙伴可以看一下,做到心中有数。
- 注意!Everything 设置不正确会泄露隐私
- 用Everything下可能导致的信息泄露
- Everything在后渗透阶段的威力
- 后渗透:Everything内网食用方法
文章编写不易,欢迎一键三连!!
相关文章:

正则表达式的使用示例--Everything文件检索批量重命名工具
一、引言 Everything是一款非常实用的文件搜索工具,它可以帮助您快速定位并查找计算机中的文件和文件夹。Everything搜索文件资料之神速,有使用过的朋友们都深有体会,相对于Windows自带的搜索功能,使用Everything,可以…...

centos环境安装JDK详细教程
centos环境安装JDK详细教程 一、前期准备二、JDK安装2.1 rpm方式安装JDK2.2 zip方式安装JDK2.3 yum方式安装JDK 本文主要说明CentOS下JDK的安装过程。JDK的安装有三种方式,用户可根据实际情况选择: 一、前期准备 查看服务器操作系统型号,执…...

Spring Cloud全解析:服务调用之OpenFeign集成OkHttp
文章目录 OpenFeign集成OkHttp添加依赖配置连接池yml配置 OpenFeign集成OkHttp OpenFeign本质是HTTP来进行服务调用的,也就是需要集成一个Http客户端。 使用的是Client接口来进行请求的 public interface Client {// request是封装的请求方式、参数、返回值类型/…...

前端算法合集-1(含面试题)
(这是我面试一家中厂公司的二面算法题) 数组去重并按出现次数排序 题目描述: 给定一个包含重复元素的数组,请你编写一个函数对数组进行去重,并按元素出现的次数从高到低排序。如果次数相同,则按元素值从小到大排序。 let arr [2, 11,10, 1…...

影刀---如何进行自动化操作
本文不是广告,没有人给我宣传费,只是单纯的觉得这个软件很好用 感谢大家的多多支持哦 本文 1.基本概念与操作(非标准下拉框和上传下载)非标准对话框的操作上传对话框、下载的对话框、提示的对话框 2.综合案例3.找不到元素怎么办&a…...

146. LRU 缓存【 力扣(LeetCode) 】
零、原题链接 146. LRU 缓存 一、题目描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中ÿ…...

【算法】链表:92.反转链表(medium)+双指针
系列专栏 《分治》 《模拟》 《Linux》 目录 1、题目链接 2、题目介绍 3、解法 (双指针) 4、代码 是 206. 反转链表 - 力扣(LeetCode)的类型题,且难度提升,可以先完成206,然后参照206的…...

Command | Ubuntu 个别实用命令记录(新建用户、查看网速等)
1. 实用命令 1.1 系统相关 1.1.1 查看系统、用户信息等 查看当前系统硬件架构 uname -m注:mac 上也能用 查看当前系统的操作系统及版本 cat /etc/os-release | grep "PRETTY_NAME"查看当前系统单个cpu的可用核心数 cat /proc/cpuinfo | grep "…...

云服务器部署k8s需要什么配置?
云服务器部署k8s需要什么配置?云服务器部署K8s需要至少2核CPU、4GB内存、50GBSSD存储的主节点用于管理集群,工作节点建议至少2核CPU、2GB内存、20GBSSD。还需安装Docker,选择兼容的Kubernetes版本,配置网络插件,以及确…...

Linux --入门学习笔记
文章目录 Linux概述基础篇Linux 的安装教程 ⇒ 太简单了,百度一搜一大堆。此处略……Linux 的目录结构常用的连接 linux 的开源软件vi 和 vim 编辑器Linux 的关机、开机、重启用户登录和注销用户管理添加用户 ⇒ ( useradd 用户名 ) ( useradd -d 制定目…...

并发编程三大特性(原子性、可见性、有序性)
并发编程的三大特性实际是JVM规范要求的JVM实现必须保证的三大特性 不同的硬件和不同的操作系统在内存管理上有一定的差异,JAVA为了解决这种差异,使用JMM(Java Memry Model)来屏蔽各个操作系统之间的差异,使得java可以…...

物理学基础精解【41】
文章目录 核物理基础 Υ \varUpsilon Υ衰变1. Υ \varUpsilon Υ衰变的一般性质2. 具体的衰变模式3. 衰变公式和机制4. 实验观测和理论研究 Υ \varUpsilon Υ衰变概述一、定义二、公式三、定理一、定义二、公式三、定理 重带电粒子概述重带电粒子的性质重带电粒子的公式 重带…...

深入理解Linux内核网络(一):内核接收数据包的过程
在应用层执行read调用后就能很方便地接收到来自网络的另一端发送过来的数据,其实在这一行代码下隐藏着非常多的内核组件细节工作。在本节中,将详细讲解数据包如何从内核到应用层,以intel igb网卡为例。 部分内容来源于 《深入理解Linux网络》…...

mysql学习教程,从入门到精通,SQL LIKE 运算符(28)
1、SQL LIKE 运算符 在SQL中,LIKE运算符主要用于在WHERE子句中搜索列中的指定模式。它通常与通配符一起使用,如%(代表零个、一个或多个字符)和_(代表单个字符),以执行模糊匹配。下面是一个使用…...

uniapp微信小程序使用ucharts遮挡自定义tabbar的最佳解决方案
如图所示: 使用的ucharts遮挡住了我自定义的tabbar(如果不是提需求的有病,我才不会去自定义tabbar) 查阅了不少文档,说是开启 ucharts 的 canvas2d 即可: 官网文档地址: uCharts官网 - 秋云…...

C初阶(八)选择结构(分支结构)--if、else、switch
前言: C语言是用来解决问题的,除了必要的数据输入与输出(见前文),还要有逻辑结构。其中基本可以归为三类:顺序结构、选择结构、循环结构。今天,杰哥提笔写的是关于选择结构(又叫“分…...

基于Springboot vue应急物资供应管理系统设计与实现
博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php python(flask Django) 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找…...

区块链+Web3学习笔记
学习资料来源于B站: 17小时最全Web3教程:ERC20,NFT,Hardhat,CCIP跨链_哔哩哔哩_bilibili 该课程提供的Github代码地址,相关资料详见README.md: Web3_tutorial_Chinese/README.md at main sm…...

Redis: 集群高可用之节点与插槽管理
概述 Redis Cluster 集群模式,它使用的是分片来存储数据的,数据都存在多个节点上。而且使用了哈希槽这样的机制,它内部维护了 16384 个插槽那就是说每一个节点其实都具体的分布了一些槽,如果我们添加一个节点的话,槽总…...

HUAWEI New4.9G 与 2.6G 无法正常切换问题处理案例
HUAWEI New4.9G 与 2.6G 无法正常切换问题处理案例 在某地市的 XX 音乐节保障准备期间,为确保活动期间的网络质量,现场新开了 4.9G HUAWEI 室外基站。在网络优化和测试中,发现UE无法实现从 2.6G 到 4.9G 的正常切换。虽然现场具备 4.9G信号覆…...

Qt C++设计模式->责任链模式
责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它允许多个对象有机会处理请求,而不需要明确指定哪个对象处理。通过将这些对象连成一条链,请求沿着链传递,直到有对象处理它为止。该模式…...

paypal支付v2.0(php)支付代码
第一步:获取access_token: <?php$clientId ; // 替换为你的 PayPal Client ID $clientSecret ; // 替换为你的 PayPal Client Secret// PayPal API 请求的 URL $url "https://api-m.sandbox.paypal.com/v1/oauth2/token";// 初始化 cURL $ch …...

基于Python的自然语言处理系列(23):DrQA
在本篇文章中,我们将实现 DrQA 模型,该模型最初由论文 Reading Wikipedia to Answer Open-Domain Questions 提出。DrQA 是一种用于开放域问答系统的端到端解决方案,最初包括信息检索模块和深度学习模型。本次实现中,我们主要探讨 DrQA 的深度学习模型部分。 1. 数据加载 …...

誉天Linux云计算课程学什么?为什么保障就业?
一个IT工程师相当于干了哪些职业? 其中置顶回答生动而形象地描绘道: 一个IT工程师宛如一个超级多面手,相当于——加班狂程序员测试工程师实施工程师网络工程师电工装卸工搬运工超人。 此中酸甜苦辣咸,相信很多小伙伴们都深有体会。除了典…...

无人机控制和飞行、路径规划技术分析
无人机控制和飞行、路径规划技术是现代无人机技术的核心组成部分,它们共同决定了无人机的性能和应用范围。以下是对这些技术的详细分析: 一、无人机控制技术 无人机控制技术主要涉及飞行控制系统的设计、传感器数据的处理以及指令的发送与执行。飞行控…...

【C++】模拟实现红黑树
🦄个人主页:修修修也 🎏所属专栏:实战项目集 ⚙️操作环境:Visual Studio 2022 目录 一.了解项目功能 二.逐步实现项目功能模块及其逻辑详解 📌实现RBTreeNode类模板 🎏构造RBTreeNode类成员变量 🎏实现RBTreeNode类构…...

离线安装docker
背景描述 项目需要在研发环境虚拟机上安装docker部署应用。 所在的服务器是一个内网,无法访问到外网环境。 服务器OS版本是 麒麟V10 linux 安装docker 安装包下载 获取所需版本的docker binary包,官方链接https://download.docker.com/linux/stati…...

MySQL高阶2066-账户余额
目录 题目 准备数据 分析数据 总结 题目 请写出能够返回用户每次交易完成后的账户余额. 我们约定所有用户在进行交易前的账户余额都为0, 并且保证所有交易行为后的余额不为负数。 返回的结果请依次按照 账户(account_id), 日期( day ) 进行升序排序…...

《RabbitMQ篇》Centos7安装RabbitMQ
安装RabbitMQ 安装包网盘下载地址 链接:https://pan.baidu.com/s/1bG_nP0iCdAejkctFp1QztQ?pwd4mlw 先上传安装包到服务器(erlang-23.3.4.11-1.el7.x86_64.rpm和rabbitmq-server-3.9.16-1.el7.noarch.rpm)然后使用指令安装 # 安装 erlang r…...

昇思学习打卡营第31天|深度解密 CycleGAN 图像风格迁移:从草图到线稿的无缝转化
1. 简介 图像风格迁移是计算机视觉领域中的一个热门研究方向,其中 CycleGAN (循环对抗生成网络) 在无监督领域取得了显著的突破。与传统需要成对训练数据的模型如 Pix2Pix 不同,CycleGAN 不需要严格的成对数据,只需两类图片域数据,…...