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」を与えます。 スラッシュの間のすべての文字に1つの「Y」だけが必要です。Re:JSL別の列の文字スクリプトのコンポーネントから新しい列を作成する多くの文字を1つに置き換える別の正規表現を追加できます。
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文字を返すには、別の数式を使用できます。その表の数式2を参照してください。
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 )
)
)