從非結構化字串中提取故障部分程式碼你好,
我想使用 JSL 中的正規表示式從下面的非結構化字串中提取故障部分程式碼。 但我沒能成功得到它,因為它很複雜。
修復 T126 和 PA21。複試通過
更改L6C、FTNG4重新路由以進行重新測試
測試1失效部位P12; M531、Z6A2。 測試2故障部分Z100、RT98; BTGH9。 重新加工所有零件
更換故障零件(K3;LG69;AK4T)。 繼續下一個測試
損壞零件 YT10 返工零件,進行下一道工序
「故障零件代碼」欄位所需的結果應如下所示

任何建議和幫助將不勝感激。
謝謝
自動化和腳本編寫回覆:從非結構化字串中提取故障部分代碼在 JMP 中使用單一正規表示式擷取多個內容並不那麼簡單,因為不存在全域匹配的可能性(
這個相當簡單的正規表示式確實為您捕獲了第一個程式碼
Names Default To Here(1);
dt = Open("$DOWNLOADS/data1.jmp");
failure_pattern = "[A-Z]+\d+[A-Z]?";
Eval(EvalExpr(
dt << New Column("A", Character, Nominal, << Formula(
Regex(:Repair Details, Expr(failure_pattern));
));
));
然後模式匹配混亂(很可能可以做得更好)
Names Default To Here(1);
dt = Open("$DOWNLOADS/data1.jmp");
str = "failure parts replaced (K3; LG69; AK4T). Proceed to next test";
dt << New Column("A", Character, Nominal, << Formula(
failure_pattern = "([A-Z]+\d+[A-Z]?){1,}";
found_list = {};
Pat Match(:Repair Details,
Pat Any(", (") + Pat Regex(failure_pattern) >> match + Pat Any(" .;,)") + Pat Test(
Insert Into(found_list, match);
0
)
);
Concat Items(found_list, ", ");
)); 回覆:從非結構化字串中提取故障部分代碼我最近發現了一個 JMP 函數/選項,可以輕鬆處理這個問題。透過文字比對建立新列。
嘗試此腳本或使用“列”->“實用程式”下的實用程式並選擇“修復詳細資料”列。
New Column by Text Matching(
Column( :Repair Details ),
Set Regex( Custom( Title( "parts" ), Regex( "([A-Z]+\d+[A-Z]?)" ), Result( "\[\1]\" ), ) ),
Output Column Name( "Failure Part Code" )
);

回覆:從非結構化字串中提取故障部分代碼謝謝賈莫。 這很棒!
回覆:從非結構化字串中提取故障部分代碼感謝分享這個功能”透過文字比對建立新列」。 它有助於。