最后一个,匹配到第 3 季
,但其实希望走到S03E01
,开发语言是 GoLang ,用的 regexp.Compile 和 FindStringSubmatch
正则:
(?i)((?:s|第|season)([0-9]+)(?:季|)(?:.|_|x|-| |))?((?:第|e|ep|p|episode)([0-9]+)(?:集|)).+$
用例:
"[堕落].The.Fall.2013.S02.E03.Complete.BluRay.720p.x264.AC3-CMCT.mkv": {2, 3},
"Agent.Carter.S02E01.1080p.BluRay.DD5.1.x264-HDS.mkv": {2, 1},
"[壹高清]21 点灵.Leave No Soul Behind.Ep01.HDTV.1080p.H264-OneHD.ts": {1, 1},
"Kimetsu.no.Yaiba.Yuukaku-hen.E01.2021.WEB-DL.1080p.x264.AAC.mkv": {1, 1},
"宝贝揪揪 第 3 季 第 10 集.mp4": {3, 10},
"宝贝揪揪 第 9 集.mp4": {1, 9},
"Gannibal.E01.2022.mp4": {1, 1},
"Gannibal S02 E11 2022.mp4": {2, 11},
"Gannibal-S01-E02-2022.mp4": {1, 2},
"Gannibal.Season01.EP02.2022.mp4": {1, 2},
"转生成自动贩卖机 02 全片简中.mp4": {1, 2},
"地球脉动.第 3 季.Planet.Earth.S03E01.2023.2160p.WEB-DL.H265.10bit.DDP2.0.2Audio.mp4": {3, 1},
1
NoOneNoBody 307 天前
第 m 季 第 n 集,SmEn
这两种写法一般不会同时出现,不如分开写再用“|”连起来,这样思路更简单些 |
2
FrankAdler OP @NoOneNoBody 也是一种做法
|
3
ns09005264 307 天前 1
|
4
ns09005264 307 天前
@ns09005264 倒数第二行没法了,只能用额外的判断了。
|
5
caomu 307 天前 via Android
手中有锤子,看啥都是钉子。
|
6
FrankAdler OP @ns09005264 貌似可以,感谢
|
7
txican 306 天前
如果一定要完全用正则实现会增加很大复杂度, 还不利于你后期维护.
如果冒出来一个处理不了的标题, 修改一大串正则会非常困难. 转手给别人接手也困难, 看不懂; 转手给几个月之后的你自己也一样看不懂. 如果你能有代码权限, 建议你多走几步逻辑. if 匹配 第 m 季 的正则 m 赋值为季数 else m = 1 if 匹配 第 n 集 的正则 n 赋值为集数 if 不匹配 第 m 季 的正则 AND 不匹配 第 n 集 的正则 AND 文件名中只有一个数字 n = 这个数字 // 也许还有其它特殊情况需要处理, 比如标题中没有数字 |
8
FrankAdler OP @txican 这个正则确实越写越复杂了,考虑拆分了
|
9
sampeng 306 天前 via iPhone
问 chatgpt
|