【问题标题】:Kibana elastic search regex string lengthKibana 弹性搜索正则表达式字符串长度
【发布时间】:2019-12-11 14:22:08
【问题描述】:

我正在尝试使用发现选项卡中的过滤器来查找字段。我想通过像 abc*** 这样的正则表达式来过滤它。我需要过滤表格以检查列是否包含以“abc”或“ABC”开头的模式的单词,并且继续包含其他 4 个字符(小 lr 大写字母)或数字的组合。

例如“abcnk12”、“ABC09PL”、“abc0978”。前 3 个字母是不变的。

任何人都可以建议如何编写这样的正则表达式,或者是否有其他方法。

【问题讨论】:

    标签: regex pattern-matching kibana elastic-stack


    【解决方案1】:

    似乎 Kibana 正则表达式不支持 ^$ 锚,因为它们是隐含的(完全匹配总是完成的),但我在下面的正则表达式演示中包含了这些锚,它们是必需的。此外,以下正则表达式不需要指定不区分大小写的标志:

    (abc|ABC)[a-zA-Z0-9]{4}
    

    See Regex Demo

    如果前7个字符后面可能有其他任意字符,那么我们需要在末尾添加.*

    (abc|ABC)[a-zA-Z0-9]{4}.*
    

    见:Regexp query

    如果指定case-insensitive=true,那么正则表达式可以简化为:

    abc[a-z0-9]{4}
    

    但请注意,aBcxxxx 等值将被接受。

    【讨论】:

    • 获取正则表达式并不难(至少在谷歌中搜索),但我想在 Kibana 中完成它有点棘手。我还不知道如何在 kibana 中做到这一点。
    • @smilyface 我对 Kibana 做了一些研究,并根据我的理解更新了正则表达式。
    猜你喜欢
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-22
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多