Early Access: The content on this website is provided for informational purposes only in connection with pre-General Availability Qlik Products. All content is subject to change and is provided without warranty.
구분 기호로 사용할 정규 표현식을 포함하는 문자열 표현식. 동일한 정규 표현식 패턴에서 여러 개의 구분 기호를 지정하려면 |(세로 파이프) 문자로 구분하여 지정합니다.
field_no
추출하려는 하위 구분의 번호를 나타내는 정수 값입니다. 예를 들어, 네 번째 하위 구분을 추출하려면 4 값을 지정합니다. 이는 선택적인 인수입니다.
다음 사항은 해당 함수가 로드 스크립트나 차트 표현식에서 사용되는지 여부에 관계없이 적용됩니다.
field_no가 양수면 함수는 하나의 값을 반환하여 왼쪽에서 오른쪽으로 일치 항목을 식별합니다.
field_no가 음수면 함수는 하나의 값을 반환하여 오른쪽에서 왼쪽으로 일치 항목을 식별합니다.
로드 스크립트에서 함수를 사용하는 경우:
LOAD 문에서 SubFieldRegEx() 함수를 사용하고 field_no를 생략하면 함수는 일치 항목 수만큼 레코드를 생성합니다.
SubFieldRegEx()를 사용하여 여러 필드가 로드되고 그 중 어느 것도 field_no 인수를 지정하지 않으면 모든 조합의 데카르트 곱이 만들어집니다.
차트 표현식에서 함수를 사용하는 경우:
field_no를 생략하면 기본값은 1입니다.
함수 예
예
결과
SubFieldRegEx('a,b c;1 2,3',' |,|;', 1)
a을 반환합니다. 이 예에서는 세 개의 구분 기호 문자가 지정됩니다(공백, 쉼표, 세미콜론).
SubFieldRegEx('a;b;c;1;2;3',';', 2)
b을 반환합니다. 이 경우에는 구분 기호 문자 하나만 지정됩니다(세미콜론).
SubFieldRegEx('a,b c;1 2,3',' |,|;', 4)
1을 반환합니다.
사용 시기
SubFieldRegEx()를 사용하면 구분 기호로 구분된 목록에서 여러 개별 값을 추출할 수 있습니다. 예를 들어, 보다 큰 자연어 블록 내에 쉼표로 구분된 목록이 있는 경우 이 함수를 사용하여 목록에서 각 개별 값을 격리하여 데이터 모델의 새 레코드로 만들 수 있습니다.
예 1 – 트랜잭션별로 태그를 구분하기 위한 로드 스크립트
개요
데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
트랜잭션 데이터를 초기에 포함하는 테이블 Transaction_By_Tag. 이 데이터는 개별 태그 값을 새 레코드로 추출하는 데 처리됩니다.
추출된 태그 값을 저장하기 위해 필드 TransactionTag을 만듭니다.
트랜잭션 태그가 포함된 필드에는 여러 개의 태그가 구분 기호로 구분된 텍스트 문자열 내에 포함되어 있습니다. 구분 기호는 다음 문자 중 하나가 될 수 있습니다. , | ;
로드 스크립트
Transaction_By_Tag:
Load SubFieldRegEx(Tags, ',|;|\|') as TransactionTag,
* Inline [
ID Product Tags Amount
1 Product A Special order,Eligible for return,Warranty included 100.93
2 Product B Ineligible for return|No warranty available 51.11
3 Product C No warranty available 12.83
4 Product B Special order;Liquidation sale;Warranty included 209.48
] (delimiter is '\t');
drop fields Tags;
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
ID
Product
TransactionTag
결과 테이블
ID
Product
TransactionTag
1
Product A
Eligible for return
1
Product A
Warranty included
1
Product A
Special order
2
Product B
No warranty available
2
Product B
Ineligible for return
3
Product C
No warranty available
4
Product B
Liquidation sale
4
Product B
Special order
4
Product B
Warranty included
이 예는 로드 스크립트에서 사용될 때 SubFieldRegEx()가 입력 문자열에서 찾은 각 일치 항목에 대해 별도의 행을 반환한다는 것을 보여 줍니다.
예 2 – 트랜잭션별로 태그를 구분하기 위한 차트 표현식
개요
데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
트랜잭션 데이터가 포함된 테이블 Transaction_By_Tag.
트랜잭션과 관련된 모든 태그를 저장하기 위한 텍스트 문자열이 들어 있는 필드 Tags.
요구 사항:
트랜잭션 태그가 포함된 필드에는 여러 개의 태그가 구분 기호로 구분된 텍스트 문자열 내에 포함되어 있습니다. 구분 기호는 다음 문자 중 하나가 될 수 있습니다. , | ;
차트 표현식을 사용하여 각 태그를 별도의 필드로 구분하고, 트랜잭션에 최대 세 개의 태그를 추가할 수 있도록 하려고 합니다.
로드 스크립트
Transaction_By_Tag:
Load * Inline [
ID Product Tags Amount
1 Product A Special order, Eligible for return, Warranty included 100.93
2 Product B Ineligible for return | No warranty available 51.11
3 Product C No warranty available 12.83
4 Product B Special order;Liquidation sale;Warranty included 209.48
] (delimiter is '\t');
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
ID
Tags
계산 차원을 추가합니다.
=SubFieldRegEx(Tags, ',|;|\|', 1)
=SubFieldRegEx(Tags, ',|;|\|', 2)
=SubFieldRegEx(Tags, ',|;|\|', 3)
결과 테이블
ID
Tags
=SubFieldRegEx(Tags, ',|;|\|', 1)
=SubFieldRegEx(Tags, ',|;|\|', 2)
=SubFieldRegEx(Tags, ',|;|\|', 3)
1
Special order, Eligible for return, Warranty included