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

如何用正则表达式匹配本地路径并排除模块路径?

正则匹配本地路径并排除模块路径解决方案

需求明确

需要匹配的本地路径格式示例:

@/path/to
@@/path/to
./path/to
../path/to
../../path/to

需要排除的路径:类似@next/module的模块路径(即@后接非斜杠字符的路径)

原正则问题分析

你之前使用的正则^[./|~/|@/|@@/]存在逻辑错误:

  • 字符集[]内的内容是单个字符的集合,@/会被拆解为@和/两个独立字符,|也只是普通字符而非逻辑或
  • 该正则实际会匹配所有以.、/、|、~、@开头的字符串,因此会错误命中@next/module这类模块路径

正确正则表达式

^(?:(?:\.\./)+|\./|@@?/)

规则解释

  • ^:锚定字符串开头,确保仅匹配路径起始符合规则的情况
  • (?:...):非捕获分组,用于整合多种匹配模式且不产生额外捕获组
  • (?:\.\./)+:匹配1次或多次../,覆盖多级上级目录路径(如../、../../)
  • |\./:或匹配当前目录起始的./路径
  • |@@?/:或匹配@/(单个@加斜杠)或@@/(双@加斜杠)的路径

验证效果

  • 匹配:所有符合需求的本地路径示例
  • 不匹配:@next/module这类@后接非斜杠字符的模块路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 14:02:12