文字列内の括弧内の文字を取得するにはどうすればいいですか?やあみんな、
以下のような文字列があります。「[CDO600705010] [S 88ABCV AB IT] [C23204348IT]」
開き括弧と閉じ括弧の間の文字を取得する方法を知っていますか
例えば:
CDO600705010
S 88ABCV AB IT
C23204348IT
心から
高度な統計モデリング消費者および市場調査データアクセスRe: 文字列内の括弧内の文字を取得するにはどうすればいいですか?この場合は間違いなく Word() または Words() を使用しますが、JMP には文字パターンというものがあります。これは習得がかなり難しく、より単純な方法と比較すると用途が少し限られるかもしれません (私は習得していません)。Re : 文字列からテキストを抽出から見つかったスクリプトを変更したスクリプト (投稿にはマッチングの説明もあります)
Names Default To Here(1);
// see https://community.jmp.com/t5/Discussions/Extract-text-from-string/td-p/450420
txt = " [CDO600705010] [S 88ABCV A B IT] [C23204348IT] ";
sp = Pat Span("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 ");
found_list = {};
Pat Match(
txt,
"[" + sp >> match + ("]") + Pat Test(
Insert Into(found_list, match);
0;
)
);
show(found_list);
// found_list = {"CDO600705010", "S 88ABCV A B IT", "C23204348IT"};
しかし、複数の括弧間の一致は、文字パターンを使用する可能性がある場所の 1 つです。
スクリプトガイド > データの種類 > パターンマッチングも参照してください。
Re: 文字列内の括弧内の文字を取得するにはどうすればいいですか?Word() は、すべての JMP ユーザーが知っておくべき関数です。
数式エディタの関数を1つだけ学ぶなら、Word()がお勧めです。
Re: 文字列内の括弧内の文字を取得するにはどうすればいいですか?@txnelsonさんのアプローチが好きです。よく使います。文字関数は便利です!
代わりに Regex() を使用する別のアプローチを次に示します。これは解決策ではありません。各文字列を解析する方法の図解です。2 つの検索パターンを示していますが、他のパターンも可能です。文字列が多い場合は考慮する必要があるかもしれないので、どちらの方法が速いのか疑問に思います。
Names Default to Here( 1 );
string = { "[CDO600705010]", "[S 88ABCV A B IT]", "[C23204348IT]" };
n = N Items( string );
For( s = 1, s <= n, s++,
Show(
Regex( string[s], "([\w\d\s]+)", "\1" );
);
);
For( s = 1, s <= n, s++,
Show(
Regex( string[s], "[^\-[\]]+" );
);
);
Re: 文字列内の括弧内の文字を取得するにはどうすればいいですか?すごい!感謝します。奇跡のように機能します
Re: 文字列内の括弧内の文字を取得するにはどうすればいいですか?s=" [CDO600705010] [S 88ABCV A B IT] [C23204348IT] ";
one = word(2,s,"[]");
show(one);
/*:
one = "CDO600705010";