IsRegEx - 스크립트 및 차트 함수
IsRegEx()는 지정된 텍스트가 유효한 정규 표현식인지 여부를 반환합니다.
이 함수는 대/소문자를 구분하는 정규식 연산을 수행합니다. 또는 IsRegExI() 변형을 사용하여 대/소문자를 구분하지 않는 정규식 작업을 수행할 수 있습니다.
구문:
IsRegEx
(expr [, debug])
반환 데이터 유형: 이중
인수
expr
|
평가할 정규 표현식을 포함하는 문자열 표현식. |
debug
|
선택 인수. 이 인수에 값이 지정되면 표현식은 잘못된 정규 표현식을 수정하는 방법을 설명하는 텍스트 힌트를 반환합니다. |
함수 예
IsRegEx('[a-z]')
|
-1을 반환합니다(true). |
IsRegEx(']0-1[', 1)
|
이 예에서는 잘못된 정규 표현식 ]0-1[을 수정하기 위한 힌트와 함께 오류 메시지를 반환합니다. |
IsRegEx('[a-z')
|
0을 반환합니다(false). debug 인수가 지정되지 않았으므로 오류 메시지가 표시되지 않습니다. |
사용 시기
IsRegEx()를 사용하면 작성한 정규 표현식이 Qlik Sense에서 유효한지 테스트할 수 있습니다. 예를 들어, 입력 텍스트와 텍스트의 타당성을 정규식으로 평가하여 앱에 테이블을 로드할 수 있습니다.
예 1 – 데이터 모델에 정규식의 타당성 로드
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
로드 스크립트
[Expression Validity]:
Load
*,
IsRegEx(reg_exp) as validity_no_hint,
IsRegEx(reg_exp,1) as validity_with_hint
;
Load
*
Inline
`
reg_exp
[a-z]+
([a-z)(0-9)+
abcdefg|[0-7
\$|¢(0-9)
`;
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
-
reg_exp
-
validity_no_hint
-
validity_with_hint
결과 테이블
([a-z)(0-9)+ |
0 |
-1 |
[a-z]+
|
-1
|
힌트 텍스트(자동 생성) |
\$|¢(0-9)
|
-1
|
힌트 텍스트(자동 생성) |
abcdefg|[0-7 |
0 |
-1 |
예 2 – 유효한 정규식만 데이터 모델에 로드
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
로드 스크립트
[Regular Expressions]:
Load
*
Inline
`
reg_exp
[a-z]+
([a-z)(0-9)+
abcdefg|[0-7
\$|¢(0-9)
`
WHERE
IsRegEx(reg_exp)=True()
;
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 이 필드를 차원으로 추가합니다.
[a-z]+ 및 \$|¢(0-9)는 유효한 정규 표현식이므로 데이터 모델에 로드되었습니다. ([a-z)(0-9)+ 및 abcdefg|[0-7은 유효한 정규 표현식이 아니므로 데이터 모델에 로드되지 않았습니다.
예 3 – 차트 표현식
개요
이 예에서 입력 문자열 집합을 데이터 모델에 로드하여 두 개의 계산 차원과 함께 이를 표에 추가합니다. 이 차원은 정규 표현식의 타당성을 평가합니다. 두 개의 계산 차원은 동일한 정보를 서로 다른 방식으로 전달합니다.
데이터 로드 편집기를 열고 다음 로드 스크립트를 새 섹션에 추가합니다.
로드 스크립트에는 reg_exp 필드가 포함되어 있으며, 이 필드에는 유효한 정규 표현식일 수도 있고 아닐 수도 있는 입력 문자열이 들어 있습니다. 이 필드는 Regular Expressions라는 테이블에 포함되어 있습니다.
로드 스크립트
[Regular Expressions]:
Load
*
Inline
`
reg_exp
[a-z]+
([a-z)(0-9)+
abcdefg|[0-7
\$|¢(0-9)
`;
결과
다음과 같이 하십시오.
-
데이터를 로드하고 시트를 엽니다. 새 테이블을 만듭니다. reg_exp를 차원으로 추가합니다.
-
다음으로, 다음과 같이 계산 차원을 추가합니다.
=IsRegEx(reg_exp)
이는 입력이 유효한 정규 표현식이면 -1(true)을 표시하고, 그렇지 않으면 0(false)을 표시하는 기본 차트 표현식입니다.
-
다른 계산 차원을 추가합니다.
=if(IsRegEx(reg_exp), 'Valid regex', 'Invalid regex')
이는 입력의 타당성에 대해 더 자세한 내용을 제공하는 조건부 표현식입니다.
결과 테이블
([a-z)(0-9)+ |
0 |
Invalid regex |
[a-z]+ | -1 | Valid regex |
\$|¢(0-9) | -1 | Valid regex |
abcdefg|[0-7 | 0 | Invalid regex |