Expresión regular para buscar y reemplazar una cadena en una fórmulaHola a todos,
I try to replace one specific part As Constant( t Quantile( 1 - 0.1 / 2, in every selected column formula by Random t((.
Sin embargo, fallo en la parte de expresiones regulares. Creo que podría tener que ver con el escape de los corchetes. Intenté con \!\, pero también fallé aquí...
¿Podría alguien depurar mi código a continuación?
// 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) ) )
) );
);
Automatización y scriptingVentanasRe: Expresión regular para buscar y reemplazar una cadena en una fórmulaLo más probable es que puedas usar Sustituir o Sustituir en en lugar de Regex
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)));
Re: Expresión regular para buscar y reemplazar una cadena en una fórmulaSí, la expresión regular necesita que se escape el paréntesis del patrón, al menos.