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

正则匹配文件名含指定字符串且排除特定字符串的方案求助

解决方案

可以使用以下正则表达式精准匹配符合要求的文件路径:

^.*\\(?=[^\\]*MVP)(?!.*Missing)[^\\]*\.(csv|xlsx?|txt)$

正则拆解

  • ^.*\\:匹配路径中最后一个反斜杠之前的所有内容,确保后续匹配的是纯文件名部分
  • (?=[^\\]*MVP):正向预查,验证文件名中包含MVP([^\\]*确保只在文件名范围内查找,不会匹配路径中的MVP)
  • (?!.*Missing):负向预查,验证文件名中不包含Missing
  • [^\\]*:匹配文件名剩余的任意非路径分隔符字符
  • \.(csv|xlsx?|txt)$:匹配指定的文件后缀(xlsx?同时覆盖.xls和.xlsx),并确保是路径结尾

示例验证

针对你给出的三个路径:

  1. \\p8files\MVP\Inbound\2023\202310\20231016\BillingProvEntityFix1016.xlsx:文件名无MVP,不匹配
  2. \\p8files\MVP\Inbound\2023\202310\20231016\BillingProv_MVP_EntityFix1016.xlsx:文件名含MVP且无Missing,匹配
  3. \\p8files\MVP\Inbound\2023\202310\20231016\BillingProv_MVP_Entity_MissingFix1016.xlsx:文件名含Missing,不匹配

之前尝试的问题分析

  • 第一个正则^.*(?=^.*MVP)(?!^.*Missing).*(\.csv|\.xls|\.xlsx|\.txt)$:断言是针对整个路径的,所以路径中的MVP会被误判为符合条件,没有限制只检查文件名
  • 第二个正则\b.*MVP[^\\]*(\.csv|\.xls|\.xlsx|\.txt)$:缺少排除Missing的负向预查逻辑,且\b的边界匹配可能在路径中触发,无法精准锁定文件名区域

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 21:13:35