-
Notifications
You must be signed in to change notification settings - Fork 137
正则处理教程
Cp0204 edited this page Nov 3, 2024
·
1 revision
在夸克网盘自动转存项目中,正则表达式(Regex)被广泛应用于文件名的匹配和替换。通过使用正则表达式,我们可以灵活地处理各种格式的文件名,确保文件在转存时能够按照预期的格式进行筛选和整理。本文将详细介绍如何使用正则表达式进行文件名处理,并提供一些示例。
正则表达式是一种用于匹配字符串的模式。它可以用来查找、替换和验证字符串。以下是一些常用的正则表达式符号:
-
.
:匹配任意单个字符 -
*
:匹配前面的字符零次或多次 -
?
:匹配前面的字符零次或一次 -
\d
:匹配数字(0-9) -
^
:匹配字符串的开头 -
$
:匹配字符串的结尾 -
()
:用于分组,提取匹配的子串
更多知识建议阅读:正则表达式30分钟入门教程
以下是一些正则表达式的示例及其效果:
pattern | replace | 效果 |
---|---|---|
.* |
无脑转存所有文件,不整理 | |
\.mp4$ |
转存所有 .mp4 后缀的文件 |
|
^【电影TT】花好月圆(\d+)\.(mp4|mkv) |
\1.\2 |
【电影TT】花好月圆01.mp4 → 01.mp4 【电影TT】花好月圆02.mkv → 02.mkv |
^(\d+)\.mp4 |
S02E\1.mp4 |
01.mp4 → S02E01.mp4 02.mp4 → S02E02.mp4 |
$TV |
“魔法匹配”剧集文件 | |
^(\d+)\.mp4 |
$TASKNAME.S02E\1.mp4 |
01.mp4 → 任务名.S02E01.mp4 |
在项目中,我们定义了一些“魔法匹配”模式,如果 表达式
的值以 $
开头且 替换式
留空,程序将自动使用预设的正则表达式进行匹配和替换。
以下是一个内置示例:
"magic_regex": {
"$TV": {
"pattern": ".*?(S\\d{1,2}E)?P?(\\d{1,3}).*?\\.(mp4|mkv)",
"replace": "\\1\\2.\\3"
}
}
如果填入 $TV
,这将使用对应的正则表达式,这些模式可以自动适配和整理市面上90%分享剧集的文件名格式。
你可以在 config.json
中自定义魔法匹配规则,例如:
"magic_regex": {
"$TV": {
"pattern": ".*?(S\\d{1,2}E)?P?(\\d{1,3}).*?\\.(mp4|mkv)",
"replace": "\\1\\2.\\3"
},
"$MOVIE": { // 自定义电影匹配
"pattern": "^(.*?)[\\s._-]*\\(?(\\d{4})\\)?[\\s._-]*(\\w+)?\\.(mp4|mkv|avi|mov|flv|wmv)$",
"replace": "\\1.\\2.\\4"
}
}
Important
特别提示,你可能遇到的一些坑:
在正则替换表达式中,我们支持使用 $TASKNAME
变量。这使得我们可以在替换时动态地插入任务名称。
这样可以根据不同的任务名称生成不同的文件名。例如:
任务名 花好月圆
,替换式 $TASKNAME.S\1E\2.\3
,替换效果 花好月圆.S01E01.mp4
通过本教程,你应该已经了解了如何在夸克网盘自动转存项目中使用正则表达式来处理文件名。
通过灵活运用正则表达式,你可以实现对文件名的自动化整理,提高文件管理的效率。