다른 열 문자 스크립팅의 구성 요소에서 새 열을 만드는 JSL입력 열이 있고 그 내용을 기반으로 새 열을 만들고 싶다고 가정합니다. 입력 열에는 항상 아래와 같이 총 8 개의 슬래시가 있습니다. 그러나 때로는 서로 다른 길이의 실제 데이터가있을 수 있습니다. 그러므로... 간단한 'Y'가있는 데이터가 있고 다른 모든 위치가 많은 행에 대해 'N'이 될 때 새 열에 표시하고 싶습니다.
입력 열 Desired_Output
//////// NNNNNNNNN
//////// NNNNNNNNN
//// a / b /// NNNNYYNNN
a //////// YNNNNNNNN
데이터 테이블스크립팅Re : JSL은 다른 열 문자 스크립팅의 구성 요소에서 새 열 만들기수식에서 이중 정규식을 사용할 수 있습니다.
Regex(Regex(:Input Column, "[^/]", "Y", GLOBALREPLACE), "/", "N", GLOBALREPLACE)
"/"가 아닌 모든 것을 "Y"로 바꾸고 "/"를 "N"으로 바꾸는 정규식 하나.
Re : JSL은 다른 열 문자 스크립팅의 구성 요소에서 새 열 만들기답장을 보내 주셔서 감사합니다. 이 기능에 익숙하지 않았으며 유용하고 유용합니다. 이것은 슬래시를 처리하지만 문자열의 모든 문자에 대해 'Y'를 제공합니다. 슬래시 사이의 모든 문자에 대해 하나의 'Y'만 원합니다.Re : JSL은 다른 열 문자 스크립팅의 구성 요소에서 새 열 만들기여러 문자를 하나씩 대체하는 다른 정규식 만 추가 할 수 있습니다.
Names Default To Here( 1 );
dt = New Table( "Test",
Add Rows( 4 ),
New Column( "Input Column", Character, "Nominal", Set Values( {"////////", "////////", "////aaaa/b///", "aBCD////////"} ) ),
New Column( "Formula",
Character,
"Nominal",
Formula( Regex( Regex( Regex( :Input Column, "[a-z]+", "A", GLOBALREPLACE, IGNORECASE ), "[^/]", "Y", GLOBALREPLACE ), "/", "N", GLOBALREPLACE ) ),
Set Selected,
Set Display Width( 246 )
)
);Re : JSL은 다른 열 문자 스크립팅의 구성 요소에서 새 열 만들기각 경우에 8자를 반환하려면 다른 수식을 사용할 수 있습니다. 해당 표의 formula2를 참조하세요.
New Table( "Test 3",
Add Rows( 4 ),
New Column( "Input Column",
Character,
"Nominal",
Set Values( {"////////", "////////", "////aaaa/b///", "aBCD////////"} )
),
New Column( "Formula",
Character,
"Nominal",
Formula(
Regex(
Regex(
Regex( :Input Column, "[a-z]+", "A", GLOBALREPLACE, IGNORECASE ),
"[^/]",
"Y",
GLOBALREPLACE
),
"/",
"N",
GLOBALREPLACE
)
),
Set Display Width( 246 )
),
New Column( "Formula2",
Character,
"None",
Formula(
item_lst = Words( Substitute( :Input Column, "/", "/;" ), ";" );
result_str = "";
For( i = 1, i <= N Items( item_lst ), i++,
If( item_lst[i] == "/",
result_str = result_str || "N",
result_str = result_str || "Y"
)
);
result_str;
),
Set Selected,
Set Display Width( 394 )
)
)