regex - Hbase RegexStringComparator筛选器提供的行比预期的多

标签 regex hadoop hbase

我有一个带有几个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/

相关文章:

Ruby 正则表达式太大/多个字符串匹配

正则表达式负前瞻

java - 如何产生海量数据?

hadoop - 为什么MapReduce在映射步骤中麻烦将每个值映射到1?

Hbase 根据列和时间戳过滤行

ruby - ruby 中的多行正则表达式

javascript - 用于验证范围的递归正则表达式

sql-server - 从sql server导入数据到hbase

hadoop - 加盐时添加 RegionServers

hadoop - 为什么 hbase KeyValueSortReducer 需要对所有 KeyValue 进行排序