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

正则表达式匹配失败求助:无法匹配目标FBX格式文件名

正则匹配问题修正

原正则的问题

  • [a-z][A-Z][0-9]仅匹配三个固定顺序的字符(小写→大写→数字),但目标字符串low_后是驼峰式字母串(如pileOfStone...),无强制数字且长度远大于3,完全不匹配。
  • 未转义的.是正则通配符,会匹配任意单个字符,而非文件名里的点号,需改为\.(C++字符串中要写\\.)。
  • 缺少结尾锚定$,可能错误匹配带多余后缀的字符串(如xxx.fbx.txt)。

修正后的正则(C++ 版本)

std::regex("^[0-9]+_mesh_fbx_low_[a-zA-Z]+(?:[A-Z][a-zA-Z]*)*\\.(?:fbx|glb|obj)$")

正则各部分说明

  • ^[0-9]+:匹配开头的任意长度数字串(如00010)
  • _mesh_fbx_low_:匹配固定的标识字符串
  • [a-zA-Z]+(?:[A-Z][a-zA-Z]*)*:匹配驼峰式命名,支持小写开头后接多组“大写字母+任意字母”的组合
  • \\.:转义后匹配文件名的后缀分隔点号
  • (?:fbx|glb|obj):非捕获组,匹配三种合法的3D文件后缀
  • $:锚定字符串结尾,确保无多余字符

如果允许名称中包含数字,可将正则中的[a-zA-Z]替换为[a-zA-Z0-9]:

std::regex("^[0-9]+_mesh_fbx_low_[a-zA-Z0-9]+(?:[A-Z][a-zA-Z0-9]*)*\\.(?:fbx|glb|obj)$")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:55:22