正規表示式:計算速度和不完整的公式運行你好,
我有兩個關於正規表示式的問題。
- 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 秒內完成,這三行程式碼佔用了大部分時間。還有其他一些小事也在發生。但是,大多數情況下,JMP 在運行時會鎖定,我必須停止腳本在偵錯器中運行,或者必須在任務管理器中結束任務。
我在 for() 和 foreach() 中使用了正規表示式,並且遇到了類似的問題。然而,正規表示式看起來更像是 for() 和 foreach(),因為公式通常會完成,但完成腳本運行所需的時間會鎖定 JMP,並且如果完全完成的話,需要很長時間。
這是非常基本的正規表示式腳本。我在其他專案的 for 迴圈中完成了更複雜的事情,資料集更大。資料集本身以 CSV 格式匯入,但這是我能發現的它與其他資料集之間的唯一區別。對發生的事情有什麼想法嗎?
資料存取視窗回复:正則表達式:計算速度和不完整的公式運行不知道發生了什麼,但如果您不需要公式,您可以嘗試使用 << 設置每個值。
回复:正則表達式:計算速度和不完整的公式運行我猜想該模式包括星號或加號操作,嵌套方式對某些數據來說需要很長時間,並且第 3024 行具有該數據模式。回复:正則表達式:計算速度和不完整的公式運行不幸的是,我使用正則表達式的原因是因為搜索字符串中感興趣的 num() 的位置和值發生了變化,但它的格式保持不變。 如果我將 regex 函數移動到不同的行並傳遞檢索到的數字(字符串)以在創建行後設置每個值( num() )以填充該行,則 regex() 函數仍然存在相同的問題。
回复:正則表達式:計算速度和不完整的公式運行我的天哪,這太尷尬了…… 我查看了我的正則表達式模式,並開始與第 3024 行及其周圍的字符串進行比較。我認為我們的數據庫需要一些微調;在許多這些行中,該字符串與正則表達式模式不匹配。哎呀!
謝謝你帶領我做這件事, @Craige_Hales !