利用正则表达式批量修改文件名

news/2024/11/16 17:31:57/

首先, 我们需要稍微学习一下正则表达式的使用方式,可以看这里:Notepad+正则表达式使用方法_notepad正则匹配-CSDN博客

经过初步学习之后,比较重要的内容我做如下转载:

元字符是正则表达式的基本构成单位,它们代表了不同的含义,如下所示:

元字符    含义
.    代表任意字符,换行符除外
^    代表一行的开头
$    代表一行的结尾
*    代表一个字符可以出现 0 次或多次
+    代表一个字符可以出现 1 次或多次
?    代表一个字符可以出现 0 次或 1 次
{n}    代表一个字符可以出现 n 次
{n,}    代表一个字符可以出现 n 次或多次
{n,m}    代表一个字符可以出现 n~m 次
[…]    代表括号中任意一个字符
[^…]    代表除括号中字符外的任意字符
\    转义字符
特殊字符
正则表达式中,还有一些特殊字符,它们代表了不同的意思:

特殊字符    含义
\d    代表任意一个数字,等价于 [0-9]
\D    代表任意一个非数字字符,等价于 [^0-9]
\w    代表任意一个字母、数字或下划线,等价于 [a-zA-Z0-9_]
\W    代表任意一个非字母、数字或下划线字符,等价于 [^a-zA-Z0-9_]
\s    代表任意一个空白字符,包括空格、制表符、换行符等
\S    代表任意一个非空白字符
汇总如下:

\ 转义字符 如:要使用 “\” 本身, 则应该使用“\”

\t Tab制表符 注:扩展和正则表达式都支持

\r 回车符CR 注:扩展支持,正则表达式不支持

\n 换行符LF 注:扩展支持,正则表达式不支持

\r\n 正则表达式可表示回车换行

. 匹配任意一个字符

^ 其右边的表达式被匹配在行首。如:^A匹配以“A”开头的行

$ 其左边的表达式被匹配在行尾。如:e$匹配以“e”结尾的行

| 或运算符,匹配表达式左边和右边的字符串。如:ab|bc匹配“ab”或“bc”

[] 匹配列表中任意单个字符。如:[ab]匹配“a”或“b”;[0-9]匹配任意单个数字

[^] 匹配列表之外的任意单个字符。如:[ab]匹配“a”和“b”以外的单个字符;[0-9]匹配任意单个非数字字符

*其左边的字符被匹配任意次(0次或多次)。如:be*匹配“b”,“be”或“bee”

+ 其左边的字符被匹配至少一次(1次或多次)。如:be+匹配“be”或“bee”,但不匹配“b”

? 其左边的字符被匹配0次或者1次。如:be?匹配“b”或“be”,但不匹配“bee”;\r?\n匹配行结尾符

() 影响表达式匹配的顺序(类似C++的小括号会影响表达式运算顺序),并且用作表达式的分组标记(标记从1开始)如:([a-z]bc)smn\1匹配“tbcsmntbc”;另见:看下文的示例

{} 指定前面的字符或分组的出现次数 如:abc{3}匹配abccc;a(bc){2}匹配abcbc

\d 匹配一个数字字符。等价于:[0-9]

\D \d取反,匹配一个非数字字符。等价于:[^0-9]

\s 匹配任意单个空白字符:包括空格、制表符等(注:不包括换车符和换行符)。等价于:[ \t]

\S \s取反的任意单个字符。

\w 匹配包括下划线的任意单个字符。等价于:[A-Za-z0-9_]

\W \w 取反的任意单个字符。等价于:[^A-Za-z0-9_]

\b 匹配单词起始处或结尾处
 

正则表达式需转义的字符包括:

* . ? + ^ $ | \ / [ ] ( ) { }
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/mahui85/article/details/134474388

 在文件管理里面,我们需要一个工具QTTabBar,这是个很好用的文件管理系统的标签插件,功能非常强大

其中就包括可以文件批量重命名的功能

从上图可以看到我下载回来的音乐,后面都有一些多余的字符,规则为【歌名- 歌手#4~6位字符.mp3】,现在我要把#后面4~6位多余的字符批量去除

我设置的是查找方案是:【#.*mp3$】

它的含义是

“#”是中间的固定“#”字符,.表示从#的字符位置开始匹配

"."表示任意字符,

"*"表示前面的任意字符出现次数为任意次数,当然也包括4~6次了,这个很重要。

“$”表示以什么结尾的,在这里表示以"#.*mp3"结尾的,在这里可以加也可以不加,毕竟没有其它干扰数据,加上的话会更好。

把查找条件设置好,替换为那里就设置为.mp3的后缀名即可

可以看到查找到的文件名为黑亮状态,并且置顶了,而没有匹配到的为灰暗状态

第二栏就是改完后新的名称了, 如果确实无误,点【重命名】按扭确认即可。


http://www.ppmy.cn/news/1547499.html

相关文章

离线语音识别自定义功能怎么用?

一、离线语音识别 随着人工智能的飞速发展,离线语音识别技术成为了一项备受瞩目的创新。离线语音识别技术能够将人的语音转化为可理解的文本,无需依赖网络连接,极大地提升了语音识别的便捷性和实用性。 与传统的云端语音识别相比,…

【go从零单排】File Paths文件路径

🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在 Go 中,处理文件路径通常使用 path/filepath 包。这个包提供了一系…

达梦数据库迁移j脚本

国产环境使用达梦数据库的越来越多&#xff0c;除了使用管理工具&#xff0c;还是可以使用脚本。 下面简单记录下&#xff0c;我在迁移中遇到的问题&#xff1a; 备份脚本 使用此脚本可以一次备份一个数据 backup_one_db.sh #!/bin/bashexport DB$1 export PASS<your_p…

杰控通过 OPCproxy 获取数据发送到服务器

把数据从 杰控 取出来发到服务器 前提你在杰控中已经有变量了&#xff08;wincc 也适用&#xff09; 打开你的opcproxy 软件包 opcvarFile 添加变量 写文件就写到 了 opcproxy.ini中 这个文件里就是会读取到的数据 然后 opcproxy.exe发送到桌面快捷方式再考回来 &#…

【Qt】Qt在窗口中加载Web界面的方法汇总

1、Qt WebEngine 1)Qt版本:Qt5.4以上; 2)平台要求(https://doc.qt.io/archives/qt-5.9/qtwebengine-platform-notes.html): 例如:Windows下只能使用 MSVC 编译器,不支持MinGW编译器,会报错(: error: Unknown module(s) in QT: webenginewidgets) 并且不能用在Qt编…

SQL 审核在 CloudQuery 的四大场景应用

数据库作为数据的核心载体&#xff0c;其安全性和稳定性对业务的影响至关重要。而在我们日常业务中&#xff0c;SQL 编写不当是引起数据库故障的一个重要原因&#xff0c;轻则影响数据库性能&#xff0c;重则可能直接导致「雪崩」。因此&#xff0c;SQL 审核作为 SQL 代码投入生…

Kafka参数了解

Kafka配置参数完整说明 1. 基础配置 参数名说明推荐值参考值broker.idbroker的唯一标识符每个节点唯一的整数1delete.topic.enable是否允许删除topictruetruelistenersbroker监听地址SASL_PLAINTEXT://host:9092SASL_PLAINTEXT://172.24.77.15:9092advertised.listeners对外发…

如何设置MySQL 数据库的默认字符集和默认排序规则

在 MySQL 中&#xff0c;设置数据库的默认字符集和默认排序规则可以通过以下步骤来实现。你可以在创建数据库时指定这些设置&#xff0c;或者使用 ALTER 命令修改现有数据库的设置。 1. 创建数据库时设置字符集和排序规则 在创建新的数据库时&#xff0c;你可以直接在 CREATE…