文字列の列からテキストを抽出するこんにちは、
私は JMP のスクリプト作成に関しては初心者ですが、文字列から特定の数字を抽出し、それぞれに新しい列を作成できるスクリプトを作成しようとしています。各数字は、常に「DX」または「DY」という文字の後に続きます。例:
D113U_NTCH_CM_MEAS_CD_SEM_{2UM_X6_NTCH_CM_IMAGE}_DX7DY11SDX11SDY15_2024-12-06_18-57-42.jpg
以下の列を抽出して作成したいと思います。

もちろん、このプロセスをデータの列全体にわたって繰り返したいと思います。アドバイスをいただければ幸いです。よろしくお願いします!
自動化とスクリプトRe: 文字列の列からテキストを抽出する考えられるすべてのパターン (DX、DY、...) を事前に知っていますか? 常に同じ場所 (}_ の後、日付の前) に配置されていますか?
Re: 文字列の列からテキストを抽出するそれらのファイル名でいっぱいの列があったら、Cols -> Recode、左上の赤い三角形 -> "Replace String" を実行し、"S?D[XY](\d+)" と入力して、"Use normal expressions" をオンにして "%\1%" に置き換えます。次に、列を分割し (Cols -> Utilities -> Text to Columns...")、"%" と入力すると、プレフィックス DX、DY、SDX、SDY、およびサフィックスが付いた 6 つの新しい列が作成されます。例:
| コラム 1 2 | コラム 1 3 | コラム 1 4 | コラム 1 5 | コラム 1 6 | コラム 1 7 |
| D113U_NTCH_CM_MEAS_CD_SEM_{2UM_X6_NTCH_CM_IMAGE}_ | 7 | 11 | 11 | 15 | _2024-12-06_18-57-42.jpg |
次に、列の名前を DX、DY などに変更できます。
実際のデータがより複雑な場合は、このプロセスももう少し複雑にする必要があるかもしれません。
Re: 文字列の列からテキストを抽出するニース : )
おそらく
word(8, filename,"_")
ロットDX11Aでも同様に動作します。
Re: 文字列の列からテキストを抽出するとても助かりました。本当にありがとうございました。
もっと見る...JMP で文字列の列からテキストを抽出するには、数式またはスクリプトを使用できます。一般的な方法には、パターン マッチング用の正規表現や、特定のテキストを分離するための部分文字列関数などがあります。**Regex()** 関数は複雑なパターンに多用途に使用できますが、より単純な抽出では **Left()、Right()、** または **Substring()** 関数を効果的に利用できます。特に難しい学期中に、
https://canadianwritings.com/に出会いました。これが救世主となりました。現代文学に関するエッセイの作成に助けが必要だったのですが、このサービスでは綿密に調査され、完璧に構成された論文を提供してくれました。ライターは私の指示に忠実に従い、最終結果は素晴らしいものでした。さらに、締め切り前にエッセイを納品してくれたので、提出前にきちんとレビューする時間がありました。
Re: 文字列の列からテキストを抽出するここに別のアプローチがあります。
データテーブルが与えられた場合

以下のスクリプトは直接作成します

Names Default To Here( 1 );
// Create and example data table
dt = New Table( "Example",
Add Rows( 1 ),
New Column( "File",
Character,
"Nominal",
Set Values(
{
"D113U_NTCH_CM_MEAS_CD_SEM_{2UM_X6_NTCH_CM_IMAGE}_DX7DY11SDX11SDY15_2024-12-06_18-57-42.jpg"
}
)
)
);
// Add the new columns to the data table
dt << New Column( "DX" );
dt << New Column( "DY" );
dt << New Column( "SDX" );
dt << New Column( "SDY" );
For Each Row(
// Separate the section of the File name into just the DX,DY,SDX,SDY part
string = Word( 1, Substr( :file, Contains( :file, "_DX" ) + 1 ), "_" );
// Change the string into a assignment statements
Substitute Into( string, "SDX", ";:SD_X=", "SDY", ";:SD_Y=", "DX", ";:D_X=", "DY", ";:D_Y=", "_", "" );
string = Substr( string, 2 ) || ";";
// Execute the assignment statements
Eval( Parse( string ) );
);