栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

负前瞻Regexp在ES DSL查询中不起作用

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

负前瞻Regexp在ES DSL查询中不起作用

ElasticSearch
Lucene正则表达式引擎不支持任何类型的环视。在ES正则表达式的文件是比较模糊的说法
匹配一切都像

.*
很慢,以及使用环视正则表达式(这不仅暧昧,而且还错误的,因为lookarounds,明智地使用时,可以大大加快正则表达式匹配)。

由于您要匹配包含

f04
和不包含的任何字符串
z
,因此您实际上可以使用

[^z]*fo4[^z]*

细节

  • [^z]*
    -除0以外的任何其他字符
    z
  • fo4
    -
    fo4
    子串
  • [^z]*
    -除以外的任何0+个字符
    z

如果您有一个多字符字符串要“排除”(例如,

z4
而不是
z
),则可以使用带有补码运算符的方法:

.*f04.*&~(.*z4.*)

这意味着几乎相同,但不支持换行符:

  • .*
    -尽可能使用除换行符以外的任何字符
  • f04
    --
    f04
  • .*
    -尽可能使用除换行符以外的任何字符
  • &
    -和
  • ~(.*z4.*)
    -除具有
    z4


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/409437.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号