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

PostgreSQL正则表达式匹配指定路径的直接子节点

实现PostgreSQL路径直接子节点匹配的正则方案

当然可以实现这个需求!你之前尝试的正则表达式逻辑存在一些问题,咱们来调整一下,精准匹配/approve/optimal/roadmap/的直接子节点。

正确的正则表达式思路

要匹配直接子节点,核心是确保路径在父节点之后只有一级目录,不能有更深的层级。对应的正则表达式应该是:

^/approve/optimal/roadmap/[^/]+/$

正则各部分解析

  • ^:锚定字符串的起始位置,确保匹配从父路径开头开始
  • /approve/optimal/roadmap/:精确匹配父路径的固定部分
  • [^/]+:匹配一个或多个非斜杠的字符,这部分就是直接子节点的名称,保证不会出现更深的层级
  • /:匹配子节点路径的结尾斜杠(和你的数据格式保持一致)
  • $:锚定字符串的结束位置,确保路径后面没有多余的内容

最终SQL语句

把正则代入~运算符(PostgreSQL中用于POSIX正则匹配),得到的查询语句是:

SELECT * FROM table WHERE path ~ '^/approve/optimal/roadmap/[^/]+/$';

替代方案:使用LIKE匹配

如果你觉得正则有点复杂,也可以用LIKE运算符组合实现同样的效果:

SELECT * FROM table 
WHERE path LIKE '/approve/optimal/roadmap/%/'
  AND path NOT LIKE '/approve/optimal/roadmap/%/%/';

第一个条件筛选出父路径下的所有子路径,第二个条件排除掉包含多级子目录的路径,最终只保留直接子节点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:27:09