从非结构化字符串中提取故障部分代码你好,
我想使用 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" )
);

回复:从非结构化字符串中提取故障部分代码谢谢贾莫。 这很棒!
回复:从非结构化字符串中提取故障部分代码感谢分享这个功能”通过文本匹配创建新列”。 它有助于。