非構造化文字列から障害部分コードを抽出するこんにちは、
JSLの正規表現を使用して、以下の非構造化文字列から障害部分のコードを抽出したいと考えています。 しかし、複雑なのでうまく取得できませんでした。
T126とPA21を修理します。再試験合格
L6C、FTNG4 の再ルートを変更して再テストします
テスト 1 の失敗部分 P12; M531、Z6A2。 テスト 2 の故障部品 Z100、RT98。 BTGH9。 全ての部品を作り直す
故障部品を交換しました (K3; LG69; AK4T)。 次のテストに進む
損傷した部品YT10は部品を再加工し、次のプロセスに進みます
「障害部品コード」列の必須結果は次のようになります。

アドバイスや助けをいただければ幸いです。
ありがとう
自動化とスクリプト作成Re: 非構造化文字列から障害部分コードを抽出する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, ", ");
)); Re: 非構造化文字列から障害部分コードを抽出する最近、これを非常に簡単に処理できる 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" )
);

Re: 非構造化文字列から障害部分コードを抽出するありがとうジャーモ。 これは素晴らしい!
Re: 非構造化文字列から障害部分コードを抽出するこの機能を共有していただきありがとうございます。」テキストマッチングによる新しい列」。 助けになる。