Expresiones regulares: velocidad de cálculo y ejecución incompleta de fórmulasHola,
Tengo dos preguntas sobre expresiones regulares.
- Below I've shown some code. I'm creating formula columns that parse information from another column. The formulas grab the correct information, but ALWAYS stop at row 3024. The datasets I work with can be tens or rows, or much larger.
dt << New column( "Column 1", formula( regex( :Other column, "pattern" ) ) );
dt << New column( "Column 2", formula( regex( :Other column, "pattern", "\1" ) ) );
dt << New column( "Column 3", formula( num( regex( :Other column, "pattern" ) ) ) );<BR /><BR />dt << Rerun Formulas; // Doesn't help!
- En el depurador, al cronometrar mi script, el temporizador indica que el script se completa en aproximadamente 1 segundo y que estas tres líneas de código ocupan la mayor parte del tiempo. También suceden otras cosas pequeñas. Sin embargo, la mayoría de las veces, JMP se bloquea al ejecutarlo y tengo que detener la ejecución del script en el depurador o finalizar la tarea en el administrador de tareas.
He utilizado expresiones regulares en for() y for each() y he tenido problemas similares. Sin embargo, las expresiones regulares parecen más como for() y for each(), ya que la fórmula termina rutinariamente, pero el tiempo que lleva completar la ejecución del script bloquea JMP y tarda mucho tiempo, si es que termina.
Se trata de una secuencia de comandos de expresiones regulares muy básica. He realizado cosas mucho más complejas en bucles for para otros proyectos, con conjuntos de datos mucho más grandes. El conjunto de datos en sí se importó como CSV, pero esta es la única diferencia que puedo detectar entre este y otros conjuntos de datos. ¿Alguna idea de lo que está sucediendo?
Acceso a datosVentanasRe: Regex: velocidad de cálculo y ejecución de fórmula incompletaNo tengo idea de lo que está sucediendo, pero si no necesita las fórmulas, puede intentar usar << Establecer cada valor.
Re: Regex: velocidad de cálculo y ejecución de fórmula incompletaSupongo que el patrón incluye operaciones de estrella o más, anidadas de una manera que lleva mucho tiempo para ciertos datos, y la fila 3024 tiene ese patrón de datos.Re: Regex: velocidad de cálculo y ejecución de fórmula incompletaDesafortunadamente, la razón por la que estoy usando expresiones regulares es porque la ubicación y el valor del número () de interés cambia dentro de la cadena buscada, pero su formato permanece igual. Si muevo la función regex a una línea diferente y paso el número (cadena) recuperado para establecer cada valor (num()) después de la creación de la fila para completar la fila, la función regex() todavía tiene el mismo problema.
Re: Regex: velocidad de cálculo y ejecución de fórmula incompletaDios mío, esto es vergonzoso... Eché un vistazo a mi patrón de expresiones regulares y comencé a comparar con las cadenas en y alrededor de la fila 3024.Creo que nuestra base de datos necesita algunos ajustes; la cadena no coincide con el patrón de expresiones regulares en muchas de estas filas.¡Eek!
Gracias por llevarme a hacer esto, @Craige_Hales !