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

如何用JavaScript匹配恰好包含1个下划线的文件名?

正则表达式正确性分析

你的正则表达式[a-zA-Z\d]+_[0-9\d]不正确,问题如下:

  • 字符范围限制过严:示例中合法文件名的name部分包含空格、点号(如Prof. Leonel Messi),但你的正则只允许字母和数字,无法匹配这类合法内容。
  • 未覆盖完整文件名:该正则仅匹配了下划线前后的片段,没有对整个文件名(包括扩展名)进行匹配,会漏掉后缀部分。
  • id匹配不完整:正则中[0-9\d]等价于[0-9],只能匹配单个数字,但示例中的id是多位数字(如300001),无法满足需求。
  • 未限制下划线数量:该正则没有确保文件名中恰好只有一个下划线,存在多个下划线的文件也可能被部分匹配。

正确的正则表达式

根据你的需求,匹配格式为name_id.extnames(仅含1个下划线,name为任意不含下划线的字符串,id为数字,extnames为扩展名)的正则应为:

^[^_]+_\d+\.\w+$

规则说明:

  • ^:匹配文件名开头
  • [^_]+:匹配name部分,任意不含下划线的字符(长度至少1)
  • _:匹配唯一的下划线
  • \d+:匹配id部分,至少一位数字
  • \.:匹配扩展名前的点号(转义后表示实际的点)
  • \w+:匹配扩展名,至少一位字母/数字/下划线
  • $:匹配文件名结尾

如果需要支持带多个点的扩展名(如file.tar.gz),可以将扩展名部分调整为\w+(\.\w+)*,正则变为:

^[^_]+_\d+\.\w+(\.\w+)*$

内容的提问来源于stack exchange,提问作者positive developer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 12:54:18