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

如何编写正则表达式移除前缀大写段及下划线提取文件名

正则提取指定格式字符串末尾文件名实现方案

问题场景

现有字符串变量name,所有值均为下划线分隔的分段格式,需要移除开头所有由纯大写英文字母(A-Z范围)组成的前缀段及对应连接下划线,仅提取末尾的文件名部分。字符串的合法格式共两类:

  • 双大写前缀格式:XXX_XXX_filename
  • 单大写前缀格式:XXX_filename

格式说明:上述XXX指代仅由A-Z范围内大写英文字母构成的任意长度字符段。

可用正则表达式

^([A-Z]+_)+

使用时直接将字符串中匹配到该正则的内容替换为空字符串,即可得到目标文件名。

规则逻辑拆解

  • ^:锚定字符串起始位置,确保仅匹配开头的前缀内容,不会误删文件名内部出现的大写字母加下划线组合
  • [A-Z]+:匹配长度≥1的连续大写英文字母段,对应规则定义的X段
  • _:匹配每个大写X段后跟随的连接下划线
  • ([A-Z]+_)+:将「大写X段+下划线」作为一个匹配单元,+代表匹配1次或多次,可同时覆盖单前缀、双前缀甚至更多段大写前缀的场景,兼容性更强。

效果验证示例

// 双前缀场景
const case1 = "USER_UPLOAD_annual_report_2024.pdf";
const res1 = case1.replace(/^([A-Z]+_)+/, '');
// 输出结果:annual_report_2024.pdf

// 单前缀场景
const case2 = "TEMP_readme.md";
const res2 = case2.replace(/^([A-Z]+_)+/, '');
// 输出结果:readme.md

// 文件名内含大写/下划线场景
const case3 = "SYS_Config_Backup_v2.zip";
const res3 = case3.replace(/^([A-Z]+_)+/, '');
// 输出结果:Config_Backup_v2.zip

内容的提问来源于stack exchange,提问作者Pawan.Java

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 11:12:32