Lucene/Elasticsearch正则需求:匹配至斜杠或结尾的指定路径
解决方案
针对Lucene/Elasticsearch不支持环视语法的情况,可通过字符类限制+结尾锚定实现需求,具体正则如下:
category\/vegetables\/[^\/]+$
规则解释
category\/vegetables\/:精准匹配固定前缀,斜杠需转义[^\/]+:匹配1个或多个非斜杠字符,确保不会包含更深层级的路径段$:锚定到字符串结尾,保证匹配的路径没有后续层级
匹配效果
- 匹配目标:
category/vegetables/green、category/vegetables/yellow - 排除路径:
category/vegetables/green/avocado、category/vegetables/yellow/banana(因包含额外斜杠和后续层级,无法满足[^\/]+$的限制)
Elasticsearch查询示例
若在ES中使用该正则,需注意JSON里的双重转义:
{ "query": { "regexp": { "path_field": "category\\/vegetables\\/[^\\/]+$" } } }
内容的提问来源于stack exchange,提问作者user18154574
相关产品推荐
相关产品推荐

