복붙노트

[HADOOP] Hive의 정규 표현식에서 여러 일치 항목 처리

HADOOP

Hive의 정규 표현식에서 여러 일치 항목 처리

Hive의 표현식에서 음의 10 진수 값을 구문 분석하고 다음 정규식을 작성했습니다.

select regexp_extract("abcsdfghj-117.3700631&poikse-118.244&",
'([-][1-9][0-9]*[.][0-9]+)&*') as output

정규식이 잘 작동하는 것처럼 보이지만 첫 번째 일치 항목 만 제공합니다. 하이브가 가능한 모든 조합을 제공 할 수 있습니까? 모든 일치를 반환하도록 하이브에 함수가 있습니까?

나는 이것을 구글로했는데 대답을 찾을 수 없었다. 도움을 주시면 감사하겠습니다.

감사

해결법

  1. ==============================

    1.

    hive> select split(substr(regexp_replace("abcsdfghj-117.3700631&poikse-118.244&",'.*?(-\\d+\\.\\d+)&',',$1'),2),',') as output;
    OK
    ["-117.3700631","-118.244"]
    
  2. from https://stackoverflow.com/questions/42125647/handling-multiple-matches-in-regex-in-hive by cc-by-sa and MIT license