Regex : vitesse de calcul et exécution de formules incomplètesBonjour,
J'ai deux questions sur les expressions régulières.
- 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!
- Dans le débogueur, en chronométrant mon script, le minuteur indique que le script est terminé en environ 1 seconde et que ces trois lignes de code occupent la majeure partie du temps. D'autres petites choses se produisent également. Cependant, le plus souvent, JMP se bloque lors de son exécution et je dois soit arrêter l'exécution du script dans le débogueur, soit terminer la tâche dans le gestionnaire de tâches.
J'ai utilisé regex dans un for() et for each() et j'ai eu des problèmes similaires. Cependant, regex ressemble plus à for() et for each(), car la formule se termine systématiquement, mais le temps nécessaire pour terminer l'exécution du script bloque JMP et prend beaucoup de temps, s'il se termine du tout.
Il s'agit d'un script regex très basique. J'ai fait des choses beaucoup plus complexes dans des boucles for pour d'autres projets, avec des ensembles de données beaucoup plus volumineux. L'ensemble de données lui-même a été importé au format CSV, mais c'est la seule différence que je peux repérer entre lui et d'autres ensembles de données. Avez-vous une idée de ce qui se passe ?
Accès aux donnéesFenêtresRe : Regex : vitesse de calcul et exécution de formule incomplèteAucune idée de ce qui se passe, mais si vous n'avez pas besoin des formules, vous pouvez essayer d'utiliser << Définir chaque valeur.
Re : Regex : vitesse de calcul et exécution de formule incomplèteJe suppose que le modèle comprend des opérations étoile ou plus, imbriquées d'une manière qui prend beaucoup de temps pour certaines données, et la ligne 3024 a ce modèle de données.Re : Regex : vitesse de calcul et exécution de formule incomplèteMalheureusement, la raison pour laquelle j'utilise regex est que l'emplacement et la valeur du num() d'intérêt changent dans la chaîne recherchée, mais sa mise en forme reste la même. Si je déplace la fonction regex vers une ligne différente et que je transmets le nombre (chaîne) récupéré pour définir chaque valeur ( num() ) après la création de la ligne pour remplir la ligne, la fonction regex() a toujours le même problème.
Re : Regex : vitesse de calcul et exécution de formule incomplèteOh mon dieu, c'est embarrassant... J'ai jeté un coup d'œil à mon modèle regex et j'ai commencé à comparer avec les chaînes à et autour de la ligne 3024.Je pense que notre base de données a besoin d'être peaufinée ; la chaîne n'a pas de correspondance pour le modèle regex dans plusieurs de ces lignes.Eek !
Merci de m'avoir conduit à le faire, @Craige_Hales !