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

如何用grep正则精确匹配带foo前缀目录下的db.yml路径

正则错误原因

你使用的.*规则会匹配包含路径分隔符/的任意字符,无法限制foo前缀目录与db.yml之间没有其他子目录,只要路径以config/foo开头、db.yml结尾就会被匹配,因此会命中嵌套子目录下的db.yml文件。

修改方案

将.*替换为匹配非/字符的规则[^/]*,修改后的命令如下:
grep -Eo "^config/foo[^/]*/db.yml"

规则说明

  • [^/]表示匹配所有不是路径分隔符/的字符,[^/]*即匹配foo目录名前缀之后、下一个/之前的全部内容,刚好完整匹配foo前缀的目录名
  • 该规则严格限制db.yml必须直接存放在foo前缀的一级子目录下,不会匹配存在嵌套子目录的路径

匹配效果验证

对你给出的示例路径匹配结果如下:

  • 匹配通过:config/footestto/db.yml、config/foodummy/db.yml
  • 匹配不通过:config/footestto/prod/db.yml(foo前缀目录与db.yml之间存在/prod/层级,不符合规则)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:36:02