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)*
이름 |
설명 |
필수/옵션 |
---|---|---|
|
대상 필드를 의미합니다. |
옵션 |
|
대상 필드와 정규식을 매칭 시킵니다. |
옵션 |
|
정규식을 의미합니다. |
필수 |
|
괄호가 있는 정규식안의 문자열 그룹 중에서 순서에 해당하는 그룹을 선택합니다. 예) |
옵션 |
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 |