正規表現: 計算速度と不完全な数式の実行こんにちは、
正規表現について2つの質問があります。
- 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!
- デバッガーでスクリプトの時間を計ると、タイマーはスクリプトが約 1 秒で完了し、この 3 行のコードが大部分の時間を占めていることを示しています。他にも小さな問題が起こっています。しかし、ほとんどの場合、JMP は実行中にロックし、デバッガーでスクリプトの実行を停止するか、タスク マネージャーでタスクを終了する必要があります。
私は for() と for each() で正規表現を使用したことがありますが、同様の問題が発生しました。ただし、正規表現は for() と for each() に似ているようで、数式は定期的に終了しますが、スクリプトの実行が完了するまでに時間がかかるため、JMP がロックされ、完了する場合でも非常に長い時間がかかります。
これは非常に基本的な正規表現スクリプトです。私は他のプロジェクトで、はるかに大きなデータセットを使用して、for ループではるかに複雑なことを実行しました。データセット自体は CSV としてインポートされましたが、これが他のデータセットとの違いとして私が見つけた唯一のものです。何が起こっているのか、何か考えはありますか?
データアクセスウィンドウズRe: 正規表現: 計算速度と不完全な式の実行何が起こっているのかわかりませんが、式が必要ない場合は << Set Each Value を使用してみてください。
Re: 正規表現: 計算速度と不完全な式の実行パターンには、特定のデータに時間がかかる方法でネストされたスターまたはプラス操作が含まれていると思います.3024行にはそのデータパターンがあります。Re: 正規表現: 計算速度と不完全な式の実行残念ながら、正規表現を使用している理由は、目的の num() の場所と値が検索文字列内で変化するためですが、書式設定は同じままです。 正規表現関数を別の行に移動し、行の作成後に各値を設定するために取得した数値 (文字列) ( num() ) を渡して行に入力すると、regex() 関数にはまだ同じ問題があります。
Re: 正規表現: 計算速度と不完全な式の実行おやおや、これは恥ずかしい… 正規表現パターンを調べて、行 3024 付近の文字列と比較し始めました。私たちのデータベースには微調整が必要だと思います。文字列は、これらの行の多くで正規表現パターンに一致しません。えー!
私をそうさせてくれてありがとう、 @Craige_Hales !