正規表現を使って文字列から部分文字列を探す次の文字列を格納する変数があり、赤い色のテキストを見つけてそれを<に置き換えます。 dt、colList [i] >。文字列は要件に応じて変化する可能性があるため、正規表現を使用したいのですが、文字列パターンは似ています(完全に同一ではありません)。
文字列:
Str = "Graph Builder(
Size( 1887, 882 ),
Show Control Panel( 0 ),
Title Text Color( "Red" ),
Graph Spacing( 2 ),
Spacing Borders( 1 ),
Variables(
X( :START_TIME ),
Y( <FONT color="#FF0000">:Sen.win.sta</FONT> ),
Group X( :NAME ),
Group X( :GROUP )
),
Elements( Points( X, Y, Legend( 3 ) ), Line( X, Y, Legend( 4 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
OutlineBox,
{Set Title( "TEST" )}
),
Dispatch(
{},
"START_TIME",
ScaleBox,
{Min( 1 ), Max( 2000 ),
Interval( "Numeric" ), Inc( 20 ), Minor Ticks( 0 ),
Label Row( Label Orientation( "Vertical" ) )}
),
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {3, [-4], 4, [-1]} ), Position( {-4, -1} )}
)
)
); ";ありがとう:)
Re:regexを使って文字列から部分文字列を探す'RegEx()'を使うこともできますが、代わりに 'Eval Insert Into()' - 例を見るために 'Help> Scripting Index'でこれを検索してください。
それでも、式は式として保持することをお勧めします。その場合は、エディタでキーワードの色分けなどが引き続き提供されるためです。そのアプローチを見るには、'Substitute Into()'を検索してください。
Re:regexを使って文字列から部分文字列を探すありがとう @ian_jmp 助けを求めて。
色分けアプローチがどのように機能するかわかりません。また、私はこのタスクを何度も繰り返さなければならず、正規表現がより堅牢なアプローチかもしれません。可能であればregex()を使って解決するのを手伝ってください。そうでなければカラーコーディングがどのように機能するか説明してください。
ありがとうRe:regexを使って文字列から部分文字列を探す私はあなたがあなたの文字列の中にあるY変数を置き換えたいと思うのです。しかし、あなたが上を見れば、ウェブページを表示するために使用されるソフトウェアのためにすべての文字列が紫色にレンダリングされるので、言うのは少し難しいです。
それで、おそらくあなたはあなたがする必要があることをまさしく繰り返すことができました、どうですか?
Re:regexを使って文字列から部分文字列を探す@ian_jmp
次の文字列を含む変数 "str"があります。交換したい <:Sen.Win.sta> と < dt、colList [i] >。文字列は要件に基づいて変更することができますがパターンは同じだろうので私は正規表現を使用したい。
Graph Builder(
Size( 1887, 882 ),
Show Control Panel( 0 ),
Title Text Color( "Red" ),
Graph Spacing( 2 ),
Spacing Borders( 1 ),
Variables(
X( :START_TIME ),
Y( <FONT color="#FF0000">:Sen.win.sta</FONT> ),
Group X( :NAME ),
Group X( :GROUP )
),
Elements( Points( X, Y, Legend( 3 ) ), Line( X, Y, Legend( 4 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
OutlineBox,
{Set Title( "TEST" )}
),
Dispatch(
{},
"START_TIME",
ScaleBox,
{Min( 1 ), Max( 2000 ),
Interval( "Numeric" ), Inc( 20 ), Minor Ticks( 0 ),
Label Row( Label Orientation( "Vertical" ) )}
),
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {3, [-4], 4, [-1]} ), Position( {-4, -1} )}
)
)
);Re:regexを使って文字列から部分文字列を探すOK。それが要件であれば、次のようにすることができます。
NamesDefaultToHere(1);
// Get some data
dt = Open("$SAMPLE_DATA/Probe.jmp");
// Get some columns to loop over
yColList = dt << getColumnNames(Continuous);
// Loop over columns
for (y=1, y<=NItems(yColList), y++,
gb = dt << Graph Builder(
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :Lot ID ), Y( yColList[y] ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
);
Wait(1);
Report(gb) << closeWindow;
);
この場合、Graph Builderコマンドは式(文字列内には含まれていません)であり、'SubstituteInto()'を使用する必要はありません。
Re:regexを使って文字列から部分文字列を探す私の最終的な要件は同じですが、新しいテーブル/新しいタイプのグラフに対して毎回変数Yの値を(dt、ColList [i])に手動で変更する必要があるたびにこれを取得します。そのため、Y変数値を変更するためにこのプロセスを自動化したいと思います。私はどんな方法でも使うことができます。正規表現が最善の方法だと思います。だから、それが私が正規表現を使いたい理由です。
Y変数を自動的に見つけて置き換えることが私の主な要件です。
ありがとう @ian_jmp Re:regexを使って文字列から部分文字列を探す文字列を編集して結果を式に解析するのではなく、式を直接操作することを自分の好みですでに示しています。私の前の記事の方法は、あなたが望むことをするために簡単に適応されると確信しています。
しかし、もしあなたが正規表現や文字列を使いたいのであれば、おそらく次のようになります。
txt = "The quick brown fox jumped over the lazy dog";
matchTxt = "the";
replaceTxt = "a";
newTxt = Regex(txt, matchTxt, replaceTxt, GLOBALREPLACE, IGNORE CASE );
Print(txt, newTxt);
[ヘルプ]> [スクリプトインデックス]を使用してJSlプリミティブを検索し、オプションと例を確認してください。
Re:regexを使って文字列から部分文字列を探すありがとう @ian_jmp
あなたの助けに感謝。