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

如何在JavaScript中用正则表达式匹配带圆括号的文件名?

正则调整方案

原正则问题分析

你原来的正则使用非贪婪匹配(.+?)捕获括号内内容,没有限制结束边界,遇到文件名内部的右括号就会提前终止匹配,无法处理嵌套括号的场景。

调整后正则

/(File \d+) \((.*?)\)(?=, File|$)/g

规则说明

  • (File \d+):匹配固定前缀File 加文件编号
  • \(:匹配包裹文件名的外层左括号
  • (.*?):非贪婪匹配文件名内容,支持包含嵌套括号
  • \):匹配包裹文件名的外层右括号
  • (?=, File|$):正向预查限制边界,仅当右括号后为下一个文件的分隔符, File或字符串结尾时才匹配结束,避免被内部右括号截断

测试示例

const rawText = 'File 147034 (Screenshot (23.06.2021 16:55:00).png), File 147035 (Screenshot 23.06.2021 16:55:00.png)';
const fileReg = /(File \d+) \((.*?)\)(?=, File|$)/g;
const result = [];
let matchItem;
while ((matchItem = fileReg.exec(rawText)) !== null) {
  result.push({
    filePrefix: matchItem[1],
    fullFileName: matchItem[2]
  });
}
// 输出结果:
// [
//   { filePrefix: 'File 147034', fullFileName: 'Screenshot (23.06.2021 16:55:00).png' },
//   { filePrefix: 'File 147035', fullFileName: 'Screenshot 23.06.2021 16:55:00.png' }
// ]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 07:06:00