首页 > 解决方案 > Elasticsearch - 匹配固定位数的十六进制数

问题描述

我一直在尝试使用 query_string 和通配符来排除我数据中的某些值。

我有以下类型的值:

qa4689f54ad-XYXY

所以该值以“q”开头,然后我有一个 10 位的十六进制数,然后是连字符,然后是其余的。

我尝试了明显的 q[a-fA-F0-9]{10}* 表达式(带有转义符 \),但它不匹配!

当我在正则表达式测试器网站上尝试相同的正则表达式时,它完全匹配。

我已经在 Elasticsearch 中解决了 10 个与正则表达式相关的问题,但都是徒劳的。

有人可以帮忙吗?谢谢。

标签: regexelasticsearch

解决方案


{10}*不是正则表达式中的有效构造。

你的意思是:

q[a-fA-F0-9]{10}.*

或(以确保连字符存在):

q[a-fA-F0-9]{10}-.*

或(以确保匹配发生在字符串的开头)

^q[a-fA-F0-9]{10}-.*

推荐阅读