Hbase RegexStringComparator筛选器提供的行数超出预期

Hbase RegexStringComparator筛选器提供的行数超出预期,regex,hadoop,hbase,Regex,Hadoop,Hbase,我有一个带有几个RegexStringComparator过滤器的过滤器列表。当正则表达式字符串类似于*15.0.0时,我遇到了一个问题。这将拾取我不感兴趣的行,例如xxx15.0。我认为这是因为xxx15.0有效地充当了匹配的xxx15.0.*。有没有办法在hbase中解决这个问题 根据您的评论,您需要指定字符串的终止方式。你真的没有提供足够的信息,所以我会给你你的选择,你可以选择一个适合你的情况 如果版本字符串出现在另一个字符串中,例如shockwave:15.0 installed或类似的

我有一个带有几个RegexStringComparator过滤器的过滤器列表。当正则表达式字符串类似于
*15.0.0
时,我遇到了一个问题。这将拾取我不感兴趣的行,例如
xxx15.0
。我认为这是因为
xxx15.0
有效地充当了匹配的
xxx15.0.*
。有没有办法在hbase中解决这个问题

根据您的评论,您需要指定字符串的终止方式。你真的没有提供足够的信息,所以我会给你你的选择,你可以选择一个适合你的情况

如果版本字符串出现在另一个字符串中,例如
shockwave:15.0 installed
或类似的字符串,您真正想要的是说“匹配字符串
shockwave:15.0
,后面不跟句点”。您可以这样做:

shockwave:15\.0[^.]
如果字符串出现在行尾,您可以只指定行尾锚点:

shockwave:15\.0$
如果可以是(在该行的中间或末尾),则可以将两者结合起来:

shockwave:15\.0($|[^.])

这应该涵盖所有情况……

你能给出你想要匹配的例子吗?你能发布匹配的完整行(你不感兴趣的行)吗?我正在尝试匹配软件的某些版本。例如,
shockwave:15.0
shockwave:15.0.0
都可以是行。但是,我只对
shockwave:15.0
感兴趣,因此如果我使用带有
shockwave.*:15.0
的正则表达式过滤器,我只希望
shockwave:15.0
行成为结果的一部分。我正在搜索的是行尾锚点。我想我需要一些更具体的HBase RowFilter,但效果非常好。谢谢