regex

개요

이 명령어는 대상 컬럼의 값에서 지정한 정규식과 일치하는 결과를 추출할 때 사용됩니다.

타입

TEXT

설명

대상 컬럼에 regex 명령을 사용하여 지정된 정규식과 일치하는 결과를 추출하여 새로운 컬럼(default : regex_컬럼)으로 만듭니다.

검색에서 정규식을 사용할 때는 파이프 | 및 백슬래시 \ 와 같은 문자를 사용할 수 있습니다.

파이프 | 는 or를 의미합니다.

백슬래시 \ 는 정규식에서 대중적으로 쓰이는 문자입니다.

Expression에 대한 내용은 다음 사이트를 참고합니다.

Regular_expression : https://en.wikipedia.org/wiki/Regular_expression

Parameters

... | regex EXPR GROUP
... | regex FIELD = EXPR GROUP
... | regex FIELD = EXPR GROUP, (FIELD = EXPR GROUP)*

이름

설명

필수/옵션

FIELD

대상 필드를 의미합니다.

옵션

=

대상 필드와 정규식을 매칭 시킵니다.

옵션

EXPR

정규식을 의미합니다.

필수

GROUP

괄호가 있는 정규식안의 문자열 그룹 중에서 순서에 해당하는 그룹을 선택합니다. 예) group(1) 는 괄호가 있는 정규식 그룹들중 첫번째 그룹에 매칭되는 문자열

옵션

Example

  • 예제용 데이터 모양 입니다.

A

B

C

D

일반

1

10.123

ab

특수

2

20.123

ab

일반

3

30.123

ef

특수

4

40.123

gh

옵션

5

50.123

ij

  • B 필드를 정규식 ‘[1-2]’로 제한한 결과를 출력합니다.

    > 1~2 사이의 숫자로 이루어진 string을 찾습니다.

... | regex B='[1-2]'

A

B

C

D

regex_B

일반

1

10.123

ab

1

특수

2

20.123

ab

2

일반

3

30.123

ef

특수

4

40.123

gh

옵션

5

50.123

ij

  • B 필드를 정규식 ‘[1-4]’, A 필드를 정규식 ‘일반’으로 제한한 결과를 출력합니다.

... | regex B='[1-4]', A='일반'

A

B

C

D

regex_B

regex_A

일반

1

10.123

ab

1

일반

특수

2

20.123

ab

2

일반

3

30.123

ef

3

일반

특수

4

40.123

gh

4

옵션

5

50.123

ij

  • 모든 필드를 정규식 ‘([0-9]+[.]?[1-9]*|[a-g]+|(특수)+)’으로 제한한 결과를 출력합니다.

... | regex '([0-9]+[.]?[1-9]*|[a-g]+|(특수)+)'

A

B

C

D

regex_A

regex_B

regex_C

regex_D

일반

1

10.123

ab

1

10.123

ab

특수

2

20.123

ab

특수

2

20.123

ab

일반

3

30.123

ef

3

30.123

ef

특수

4

40.123

gh

특수

4

40.123

g

옵션

5

50.123

ij

5

50.123

  • 모든 필드를 정규식 ‘[^s]’으로 제한한 결과를 출력합니다.

... | regex '[^\s]'

A

B

C

D

regex_A

regex_B

regex_C

regex_D

일반

1

10.123

ab

일반

1

10.123

ab

특수

2

20.123

ab

특수

2

20.123

ab

일반

3

30.123

ef

일반

3

30.123

ef

특수

4

40.123

gh

특수

4

40.123

gh

옵션

5

50.123

ij

옵션

5

50.123

ij

  • 2 번째 예제용 데이터 모양 입니다.

  • 모든 필드에 정규식 ‘“colA”:s(d+),.*’ 을 적용하고, 그중 ()괄호로 그룹화 한 결과만을 추출하여 regex_컬럼 으로 생성합니다..

... | regex '"colA":\s(\d+)\,.*' group(1)

json_col

regex_json_col

{“colA”: 123, “colB”: “abccc”}

123

{“colA”: 12.3, “colB”: “abbbc”}

{“colA”: 33, “colB”: “aaabc”}

33