如何在文件名中定位Model并提取其后的5个字符?
提取文件名中指定关键词后的固定长度内容
针对你需要定位文件名中的Model并提取其后5个字符的需求,推荐两种实用方案:
方案1:正则表达式(推荐)
正则表达式可以无视Model在文件名中的位置,精准匹配并捕获目标内容,还能进一步限制格式(比如确保是XX-XX的数字+横杠组合)。
JavaScript 示例
const filenames = [ "File 01 - Vertical - Day 04 - Model 01-01", "File 02 - Model 01-02 - Day 02" ]; // 匹配"Model "后接5个字符,若要限定为XX-XX格式,可改用 /Model (\d{2}-\d{2})/ const regex = /Model (.{5})/; filenames.forEach(name => { const matchResult = name.match(regex); if (matchResult) { console.log(matchResult[1]); // 输出:01-01、01-02 } });
PowerShell 示例
$filenames = @( "File 01 - Vertical - Day 04 - Model 01-01", "File 02 - Model 01-02 - Day 02" ) foreach ($name in $filenames) { if ($name -match 'Model (.{5})') { $matches[1] # 输出目标内容 } }
方案2:indexOf + substring
如果你倾向于用字符串定位方法,先找到Model 的位置,再截取后续字符:
JavaScript 示例
const filenames = [ "File 01 - Vertical - Day 04 - Model 01-01", "File 02 - Model 01-02 - Day 02" ]; filenames.forEach(name => { const modelPos = name.indexOf("Model "); if (modelPos !== -1) { // "Model "共6个字符,从其后开始截取5个字符 const target = name.substring(modelPos + 6, modelPos + 6 + 5); console.log(target); } });
方案对比
- 正则法:更健壮,能过滤不符合格式的内容,适配复杂场景;
- 字符串定位法:代码更直观,适合简单场景,但需自行处理“找不到Model”“后续字符不足”等边界情况。
内容的提问来源于stack exchange,提问作者Tyrone Hirt
相关产品推荐
相关产品推荐

