Regulärer Ausdruck zum Suchen und Ersetzen einer Zeichenfolge in einer FormelHallo zusammen,
I try to replace one specific part As Constant( t Quantile( 1 - 0.1 / 2, in every selected column formula by Random t((.
Allerdings scheitere ich beim Regex-Teil. Ich denke, es könnte mit dem Escapen der Klammern zu tun haben. Ich habe es mit \!\ versucht, aber auch hier ist es nicht gelungen...
Könnte jemand meinen Code unten debuggen?
// Select some columns
dt = currentdatatable();
dt << Get Selected Columns;
//'fix' each selected column formula by manipulating the formula as a string
for each( {col, c}, dt << Get Column References( dt << Get Selected Columns ),
newf = regex(
char(col << Get Formula),
"As Constant( t Quantile( 1 - 0.1 / 2, ",
"Random t((",
GLOBALREPLACE
);
//show(Parse(newf));
Eval( Eval Expr(
col << Set Formula( Expr( Parse(newf) ) )
) );
);
Automatisierung und SkriptingWindowsBetreff: Regulärer Ausdruck zum Suchen und Ersetzen einer Zeichenfolge in einer FormelSie können höchstwahrscheinlich Substitute oder Substitute Into anstelle von Regex verwenden
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
new_col = dt << new column("F", Numeric, Continuous, Formula(
As Constant(t Quantile(1 - 0.1 / 2, 1, 0))
));
f_expr = new_col << Get Formula;
f_str = Char(Name Expr(f_expr));
Substitute Into(f_str, "As Constant(t Quantile(1 - 0.1 / 2, ", "Random t((",);
Substitute Into(f_str, "((", "(", "))", ")");
new_col << Set Formula(Eval(Parse(f_str)));
Betreff: Regulärer Ausdruck zum Suchen und Ersetzen einer Zeichenfolge in einer Formelja, bei regulären Ausdrücken muss zumindest die Klammer des Musters maskiert werden.