我有一个带有几个RegexStringComparator过滤器的FilterList。当正则表达式字符串类似于.*15.0.0
时,我遇到了一个问题。这将获取我不感兴趣的行,例如xxx15.0
。我认为这是因为xxx15.0
有效地充当了匹配的xxx15.0.*
。在hbase中有什么办法解决这个问题?
最佳答案
根据您的评论,您似乎需要指定如何终止字符串。您实际上没有提供足够的信息,因此,我将为您提供选择,然后您可以选择适合您情况的选择。
如果版本字符串出现在另一个字符串(例如shockwave:15.0 installed
等)中,那么您真正要说的是“匹配不带句点的字符串shockwave:15.0
”。您可以这样做:
shockwave:15\.0[^.]
如果字符串出现在行尾,则可以只指定行尾 anchor :
shockwave:15\.0$
如果可以(在行的中间或在行的结尾),则可以将两者结合:
shockwave:15\.0($|[^.])
那应该涵盖所有情况。
关于regex - Hbase RegexStringComparator筛选器提供的行比预期的多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19231083/