正则表达式的使用示例--Everything文件检索批量重命名工具

news2024/11/17 3:43:31

一、引言

Everything是一款非常实用的文件搜索工具,它可以帮助您快速定位并查找计算机中的文件和文件夹。Everything搜索文件资料之神速,有使用过的朋友们都深有体会,相对于Windows自带的搜索功能,使用Everything,可以让我们享受使用搜索引擎一般地在本地硬盘上搜索我们的文件信息。
本文将为您提供一些基本的使用指南,并介绍我的使用经验,希望大家可以更好地利用Everything这个工具。

二、本文使用场景

文件检索、文件重命名

今天小编在进行数据处理的时候,遇到一个文件重命名的问题,在网上查了好多内容,也没有找到合适的方法,小编自己测试的方法,现将经验的方法分享给大家,希望对大家有帮助。
以下是具体的问题情况描述如下:

    1. 搜索文件名称以数字开头,且数字的位数为1位数字;
    1. 文件的格式后缀为.jpg
    1. 文件名称中包含汉字;
    1. 将文件名称的1位数字修改为2位数字,就是在文件名是数字开头的1位数字的前面加个0;
    1. 需要修改的文件数量100+,一个一个的改太费劲了(还是得想办法啊);
    1. 文件夹内还包含子文件夹,子文件夹内的文件名称也需要修改;

例如:

需要将 “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内网食用方法

文章编写不易,欢迎一键三连!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2173381.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言 | Leetcode C语言题解之第442题数组中重复的数据

题目&#xff1a; 题解&#xff1a; int* findDuplicates(int* nums, int numsSize, int* returnSize) { int *ans (int *)malloc(sizeof(int) * numsSize);int pos 0;for (int i 0; i < numsSize; i) {int x abs(nums[i]);if (nums[x - 1] > 0) {nums[x - 1] -…

$attrs 和 $listeners

通常情况下&#xff0c;父子组件之间的数据是通过 props 由父向子传递的&#xff0c;当子组件想要修改数据时&#xff0c;则需要通过 $emit 以事件形式交由父组件完成&#xff0c;而这种交互方式只存在于父子组件之间&#xff0c;多层嵌套的时候&#xff0c;处于内层的组件想要…

OpenAI o1与GPT-4o究竟强在哪里

OpenAI 的 O1 模型与 GPT-4o 相比&#xff0c;具有显著的技术进步和性能提升。以下是两者的主要区别和 O1 的进步之处&#xff1a; 推理能力&#xff1a;O1 模型在处理复杂问题&#xff08;如编程和数学&#xff09;方面表现出更强的推理能力。例如&#xff0c;在国际数学奥林匹…

使用ffmpeg合并视频和音频

使用ffmpeg合并视频和音频 - 哔哩哔哩 简介 FFmpeg是一套可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec&#xff0…

【项目文档】软件系统培训方案(Doc原件2024)

1. 培训概述 2. 培训目的 3. 培训对象及要求 3.1. 培训对象 3.2. 培训人员基本要求 4. 培训方式 5. 培训内容 6. 培训讲师 7. 培训教材 8. 培训质量保证 8.1. 用户培训确认报告 8.2. 培训疑问解答 软件全套资料部分文档清单&#xff1a; 工作安排任务书&#xff0c;可行性分析报…

【JAVA开源】基于Vue和SpringBoot的师生健康管理系统

博主说明&#xff1a;本文项目编号 T 052 &#xff0c;文末自助获取源码 \color{red}{T052&#xff0c;文末自助获取源码} T052&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

【数据结构】排序算法系列——计数排序(附源码+图解)

计数排序 顾名思义&#xff1a;统计每个数据出现的次数。 算法思想 我们根据《算法导论》中给出对于计数排序的讨论&#xff1a; 对每一个输入元素 x, 确定小于 x 的元素个数。利用这一信息&#xff0c;就可以直接把 x 放到它在输出数组中的位置上了。例如&#xff0c;如果…

秋招即将来临,AIGC 产品经理 快速入门方法论

AIGC 产品经理是什么 AIGC 产品经理是人工智能与大数据技术融合背景下应运而生的一种新型职业&#xff0c;负责从 AI 产品的设计、开发到推广的全过程&#xff0c;确保其顺利推向市场并实现良好的商业价值。 更具体地说&#xff0c;AIGC 产品经理就是将 AI 能生产内容的能力完…

【高景一号卫星】

高景一号卫星 高景一号卫星是中国自主研发的一系列高分辨率商业遥感卫星&#xff0c;旨在满足全球民用遥感影像市场的需求。以下是对高景一号卫星的详细介绍&#xff1a; 一、基本信息 名称&#xff1a;高景一号&#xff08;SuperView-1, SV-1&#xff09;发射时间&#xf…

数据库管理-第244期 一次无法switchover的故障处理(20240928)

数据库管理244期 2024-09-28 数据库管理-第244期 一次无法switchover的故障处理&#xff08;20240928&#xff09;1 问题展现2 问题排查与处理2.1 问题12.2 问题2 3 问题分析4 总结 数据库管理-第244期 一次无法switchover的故障处理&#xff08;20240928&#xff09; 作者&…

TimeMOE: 使用稀疏模型实现更大更好的时间序列预测

传统上,预测这些趋势涉及针对每种情况的专门模型。最近的进展指向了可以处理广泛预测问题的"基础模型"。 这是9月份刚刚发布的论文TimeMOE。它是一种新型的时间序列预测基础模型,“专家混合”(Mixture of Experts, MOE)在大语言模型中已经有了很大的发展&#xff0c…

如何在ChatGPT的帮助下,使用“逻辑回归”技巧完成论文写作?

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 逻辑回归作为一种统计分析工具广泛应用&#xff0c;以解决研究中的分类问题。其主要作用在于探讨和量化自变量对因变量的影响&#xff0c;从而揭示潜在的因果关系。 在论文写作中&…

无人驾驶车联网5G车载路由器应用

无人驾驶车联网中&#xff0c;5G车载路由器的应用起到了至关重要的作用。以下是关于5G车载路由器在无人驾驶车联网中应用的详细分析&#xff1a; 5G车载路由器具备极低的时延特性&#xff0c;能够实现车与车之间、车与基础设施之间的快速通信。这对于无人驾驶技术尤为重要&…

策略模式与工厂模式的区别

《策略模式与工厂模式的区别》 策略模式&#xff08;Strategy Pattern&#xff09; 和 工厂模式&#xff08;Factory Pattern&#xff09; 都是常见的设计模式&#xff0c;虽然它们在设计目标上有一些相似之处&#xff0c;如解耦代码、增强扩展性&#xff0c;但它们的应用场景和…

做中视频计划,哪里找素材?推荐几个热门中视频素材下载网站

在做中视频计划时&#xff0c;寻找合适的素材至关重要。抖音上那些热门的中视频素材都是从哪里下载的呢&#xff1f;以下五大高清素材库值得收藏&#xff0c;赶紧来看看吧&#xff01; 蛙学网 蛙学网提供了百万级的中视频素材&#xff0c;质量高且是4K高清无水印&#xff0c;视…

crypt.h:No such file or directory 报错处理

crypt.h&#xff1a;No such file or directory 报错处理 前言&#xff1a;本文初编辑于2024年9月28日 CSDN主页&#xff1a;https://blog.csdn.net/rvdgdsva 博客园主页&#xff1a;https://www.cnblogs.com/hassle 博客园本文链接&#xff1a;https://www.cnblogs.com/has…

0基础学前端 day6 -- 搭建github pages静态网址

标题&#xff1a;如何通过 GitHub Pages 创建一个静态网站 GitHub Pages 是 GitHub 提供的一项免费服务&#xff0c;允许用户从 GitHub 仓库中托管静态网站。对于开发者和非开发者来说&#xff0c;这都是一个极其便利的工具&#xff0c;用于创建和发布个人博客、项目文档或作品…

[leetcode刷题]面试经典150题之9python哈希表详解(知识点+题合集)

为了方便理解哈希表&#xff0c;我们先从python中的字典讲起。 字典 (Dictionary) 字典是 Python 中一种内置的数据结构&#xff0c;它是一种 键值对&#xff08;key-value pair&#xff09;存储形式。每个键&#xff08;key&#xff09;都有一个对应的值&#xff08;value&a…

100个Transformer面试题,附答案!收藏这一篇就够了!

前言 Transformer是一种用于自然语言处理&#xff08;NLP&#xff09;和其他序列到序列&#xff08;sequence-to-sequence&#xff09;任务的深度学习模型架构&#xff0c;它在2017年由Vaswani等人首次提出。Transformer架构引入了自注意力机制&#xff08;self-attention mec…

力扣 简单 112.路径总和

文章目录 题目介绍题解 题目介绍 题解 class Solution {public boolean hasPathSum(TreeNode root, int targetSum) {// 只在最开始的时候判断树是否为空if (root null) {return false;}targetSum - root.val;if (root.left null && root.right null) { // root 是…