Regex: Rechengeschwindigkeit & unvollständiger FormellaufHallo,
Ich habe zwei Fragen zu regulären Ausdrücken.
- 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!
- Im Debugger, der mein Skript zeitlich misst, gibt der Timer an, dass das Skript in ca. 1 Sekunde abgeschlossen ist und dass diese drei Codezeilen den Großteil der Zeit in Anspruch nehmen. Es passieren auch noch andere kleine Dinge. Meistens bleibt JMP jedoch beim Ausführen hängen und ich muss entweder die Ausführung des Skripts im Debugger stoppen oder die Aufgabe im Task-Manager beenden.
Ich habe Regex in for() und for each() verwendet und hatte ähnliche Probleme. Regex ähnelt jedoch eher for() und for each(), da die Formel routinemäßig abgeschlossen wurde, aber die Zeit, die zum Abschließen des Skriptlaufs benötigt wird, blockiert JMP und dauert sehr lange, wenn es überhaupt abgeschlossen wird.
Dies ist ein sehr einfaches Regex-Scripting. Ich habe für andere Projekte mit viel größeren Datensätzen viel komplexere Dinge in For-Schleifen gemacht. Der Datensatz selbst wurde als CSV importiert, aber das ist der einzige Unterschied, den ich zwischen ihm und anderen Datensätzen erkennen kann. Irgendwelche Ideen, was passiert?
DatenzugriffWindowsBetreff: Regex: Rechengeschwindigkeit & unvollständiger FormellaufKeine Ahnung, was passiert, aber wenn Sie die Formeln nicht benötigen, können Sie versuchen, << Set Each Value zu verwenden.
Betreff: Regex: Rechengeschwindigkeit & unvollständiger FormellaufIch würde vermuten, dass das Muster Stern- oder Plusoperationen enthält, die so verschachtelt sind, dass bestimmte Daten lange dauern, und Zeile 3024 enthält dieses Datenmuster.Betreff: Regex: Rechengeschwindigkeit & unvollständiger FormellaufLeider verwende ich Regex, weil sich die Position und der Wert des interessierenden num() innerhalb der gesuchten Zeichenfolge ändert, die Formatierung jedoch gleich bleibt. Wenn ich die Regex-Funktion in eine andere Zeile verschiebe und die abgerufene Zahl (Zeichenfolge) übergebe, um jeden Wert ( num() ) nach der Zeilenerstellung festzulegen, um die Zeile zu füllen, hat die Funktion regex() immer noch das gleiche Problem.
Betreff: Regex: Rechengeschwindigkeit & unvollständiger FormellaufOh mein Gott, ist das peinlich... Ich habe mir mein Regex-Muster angesehen und mit den Strings in und um Zeile 3024 verglichen.Ich denke, dass unsere Datenbank etwas Feinabstimmung benötigt; Die Zeichenfolge hat in vielen dieser Zeilen keine Übereinstimmung mit dem Regex-Muster.Eek!
Danke, dass du mich dazu gebracht hast, @Craige_Hales !