求正则表达式实现电影文件名的批量格式转换
正则替换方案(一次完成)
你可以使用以下正则表达式在TextMate中完成一次替换,替代原来的宏操作:
查找正则
^(.+?)\.((?:19[2-9]\d|20[0-2]\d)\..+)$
替换规则
在TextMate的替换框中输入以下内容:
${1//./ } - $2
正则说明
^(.+?):非贪婪匹配文件名开头到年份前最后一个点的所有内容(即电影标题部分,如This.Is.The.Movie.Title)\.:匹配年份前的那个分隔点((?:19[2-9]\d|20[0-2]\d)\..+)$:匹配1920-2029范围内的年份及后续所有内容(如2023.1080p.DTS.mkv)
替换逻辑
${1//./ }:将标题部分的所有.替换为空格-:在标题与年份之间添加指定分隔符$2:完整保留年份及后续的格式内容
备选方案(若TextMate不支持分组内替换)
如果上述替换语法无法生效,可分两步完成(仍比宏操作简便):
- 替换标题内的点为空格
- 查找:
(\.)(?!(19[2-9]\d|20[0-2]\d)\.) - 替换:
- 查找:
- 在年份前添加分隔符
- 查找:
(19[2-9]\d|20[0-2]\d) - 替换:
- $1
- 查找:
内容的提问来源于stack exchange,提问作者user25579674
相关产品推荐
相关产品推荐

