为什么放到hbase的RegexStringComparator就差不出来了?

比如我有一个20131213182734_1111113211_3623010004_3600001002_92233706494375782220000我想用正则表达式找出第一个"_"和第二个"_",之间,是否有匹配1132的数据。
我使用rowFilter和RegexStringComparator组合查询
regexStr ="\\d+_.*?"+key+".*?[_\\d+][3]?";regex = new RegexStringComparator(regexStr);rowFilter = new RowFilter(CompareOp.EQUAL ,regex);keyFilter.addFilter(rowFilter);
其中无法完全匹配1111113211关键字。但是我试过该正则表达式,是没有问题的。
难道hbase的RegexStringComparator不完全和java的表达式一样?
比如我的java
String s ="20131213182734_1111113211_3623010004_3600001002_92233706494375782220000";String regex ="\\d+_.*?1111113211.*?[_\\d+][3]?";
System.out.println(s.matches(regex));
这样是可以通过的.但是放到hbase的RegexStringComparator就差不出来了。

慕盖茨4494581
浏览 224回答 1
1回答

DIEA

不要用这个,hbase查询的时候可以设start和end。还有一个是可以根据offset查。用正规能搞死你,一定要提前设计好自己的key。否则数据海量的时候有你受的。
打开App,查看更多内容
随时随地看视频慕课网APP