You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式优化需求:识别含三个连字符的光盘文件名

优化后的正则表达式方案

针对你需要识别包含三个连字符(中间可选整数)的光盘文件名需求,你原来的正则通过枚举所有场景实现,确实不够简洁高效。可以利用\d*(匹配0个或多个数字,对应“整数或无内容”)合并所有情况,优化后的正则如下:

string sRegex = @"-\d*-\d*(?:-|\.)";

正则说明:

  • -\d*-:匹配第一个连字符,后跟可选整数(或空内容),再跟第二个连字符
  • \d*:匹配第二个可选整数(或空内容)
  • (?:-|\.):匹配结尾的连字符或点(覆盖模式在文件名中间-xxx-或末尾-xxx.ts的场景,?:表示非捕获组,减少不必要的内存开销,提升匹配效率)

匹配验证

该正则可完美匹配你给出的示例文件名:

  1. Ice Cold Murders- Rocco Schiavone-1-5.ts → 匹配-1-5.部分
  2. Lost Girl---Where There's a Will, There's a Fae_Pick_2019_04_09_20_00.ts → 匹配---部分
  3. Lost Girl-1-4-Food For Thought_Pick_2019_04_15_20_00.ts → 匹配-1-4-部分

如果后续需要提取季数和集数,可以调整为带捕获组的版本(方便直接获取整数内容):

string sRegex = @"(-?\d*)-(-?\d*)(?:-|\.)";

捕获组$1对应第一个整数(季数),$2对应第二个整数(集数),空值则代表无对应编号。

内容的提问来源于stack exchange,提问作者Tony Vaughan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 04:35:28