구분 기호로 사용할 정규 표현식을 포함하는 문자열 표현식. 동일한 정규 표현식 패턴에서 여러 개의 구분 기호를 지정하려면 |(세로 파이프) 문자로 구분하여 지정합니다.
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