2013-10-07 3 views
0

여러 RegexStringComparator 필터가있는 FilterList가 있습니다. 정규식 문자열이 .*15.0.0과 비슷할 때 문제가 있습니다. 이것은 xxx15.0과 같은 행을 선택할 것입니다.이 점은 xxx15.0이 실제로 xxx15.0.*과 일치하는 것으로 간주되기 때문입니다. hbase에서이 문제를 해결할 방법이 있습니까?Hbase RegexStringComparator 예상보다 많은 행을 제공하는 필터

+0

수 : (라인 또는 그것의 끝에 중간에), 당신은 두 가지를 결합 할 수 있습니다 당신이 원하는 것과 일치하는 예제를 게시 하시겠습니까? 일치하는 전체 라인 (관심이없는 라인)을 게시 할 수 있습니까? – cabad

+0

특정 버전의 소프트웨어와 일치 시키려고합니다. 예를 들어,'shockwave : 15.0'과'shockwave : 15.0.0' 둘 다 행이 될 수 있습니다. 그러나 나는 단지'shockwave : 15.0'에만 관심이 있습니다. 그래서'shockwave. * : 15.0'을 가진 regex 필터를 사용하면 나는'shockwave : 15.0' 행을 결과의 일부로 원합니다. – user2623855

답변

1

귀하의 의견에 따르면, 문자열을 종료하는 방법을 지정해야하는 것처럼 보입니다. 당신은 충분한 정보를 제공하지 않으므로 귀하에게 옵션을 제공하고 귀하의 상황에 맞는 것을 선택할 수 있습니다.

shockwave:15.0 installed 등과 같이 다른 문자열에 버전 문자열이 나타나는 경우 실제로 "마침표 다음에 오는 문자열 shockwave:15.0"과 일치하는 것이 좋습니다. 그 중 하나가 될 수 있다면

shockwave:15\.0$ 

: 문자열이 줄 끝에 나타나면 그냥 끝 라인 앵커를 지정할 수 있습니다

shockwave:15\.0[^.] 

:이 같은 것을 할 수 있습니다 요 모든 경우를 포함한다

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

....

+0

end-of-line anchor는 제가 찾고있는 앵커입니다. HBase RowFilter에 특정한 것이 더 필요하다고 생각했지만 완벽하게 작동했습니다. 감사합니다 – user2623855

+0

기꺼이 도와 드리겠습니다! –

관련 문제