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

如何在PHP中从文件名提取指定词汇?特定文件名关键词提取可行性咨询

在PHP中从文件名提取指定词汇的方法

没问题,我来帮你搞定这个需求!针对你给出的几个文件名,咱们可以用两种简单的方法提取目标词汇,同时也会给你通用的思路。

方法一:字符串分割(适合格式固定的场景)

你的文件名格式非常统一:MyCSV - [目标词].csv,咱们可以先去掉文件扩展名,再用分隔符-拆分字符串:

// 批量处理你的文件名示例
$filenames = ["MyCSV - Test.csv", "MyCSV - Prototype.csv", "MyCSV - Super.csv"];

foreach ($filenames as $file) {
    // 获取不带扩展名的文件名(比如把"MyCSV - Test.csv"变成"MyCSV - Test")
    $nameWithoutExt = pathinfo($file, PATHINFO_FILENAME);
    // 用" - "拆分字符串,得到数组["MyCSV", "Test"]
    $parts = explode(" - ", $nameWithoutExt);
    // 取数组的第二个元素就是咱们要的词
    $target = $parts[1];
    echo $target . PHP_EOL; // 依次输出 Test、Prototype、Super
}

这种方法简单高效,只要文件名格式不变,就能稳定提取。

方法二:正则表达式(适合格式灵活的场景)

如果以后文件名格式有小变化(比如分隔符前后空格不固定、前缀不同),用正则表达式会更灵活。针对你的例子,可以写这样的正则:

$filenames = ["MyCSV - Test.csv", "MyCSV - Prototype.csv", "MyCSV - Super.csv"];

foreach ($filenames as $file) {
    // 匹配" - "后面到".csv"前面的内容
    preg_match('/.* - (.*)\.csv/', $file, $matches);
    // $matches[1]就是捕获到的目标词汇
    $target = $matches[1];
    echo $target . PHP_EOL;
}

如果要适配更通用的文件名(比如不同扩展名),可以把正则改成/.* - (.*)\..*/,这样不管是.csv还是其他后缀都能处理。

总结

  • 格式固定时优先用字符串分割,代码更易读,性能更好;
  • 格式多变时用正则表达式,适配性更强。

内容的提问来源于stack exchange,提问作者Lanz Joshua

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:13:54