[あすかぜ・ねっと]あすかぜ・ねっと自作ソフトCassava > サポート掲示板

Cassava Editor サポート掲示板

スレッド一覧に戻る返信

[786] 特定の記号と記号の間の文字の抽出方法につきまして

たける [2023/10/11 14:27:58]

いつもお世話になっております。

特定の記号が入った文字列の抽出を行いたいのですが、
例えば、

「14/ホワイト×ネイビー」

とあった場合、
「ホワイト」のみを抽出したいです。


しかしその列の中には、

「14/ホワイト/ネイビー」

と、記号が異なるものもございます。


法則としては、

「(数字)/カラー名称①( / or × )カラー名称②」

となります。
上記の抜き出したい箇所は「カラー名称①」のみとなります。

こちら抽出方法がございましたら、ご教授いただけますと幸いです。
宜しくお願いいたします。


Re: [786] 特定の記号と記号の間の文字の抽出方法につきまして

あすかぜ [2023/10/11 21:07:56]

正規表現を使って抽出ができそうです。
次の手順を試してみてください。

1. [検索(S)]-[検索・置換(F)...] メニューで検索・置換ダイアログを開く
2. 「検索する文字列(S)」に「.*/(.*)[/×].*」と入力
3. 「置換後の文字列」に「$1」と入力
4. 「正規表現検索(E)」にチェックを入れる
5. 「すべて置換(A)」を実行

マクロを使用する場合、マクロファイルに

ReplaceAll(".*/(.*)[/×].*", "$1", false, true, true);

と記述してください。

Re: [786] 特定の記号と記号の間の文字の抽出方法につきまして

たける [2023/10/13 14:57:26]

いつもお世話になっております。

ありがとうございます。
希望通り動作いたしました。


マクロの記述方法もありがとうございます。

こちら選択した列のみ更新を行いたかったので、
他でご回答されておりましたものから参考にさせていただきました。

また、置換したデータの中で、

「62/レッド」

といったものもございまして、
この度ご教授いただきましたものは、

「14/ホワイト×ネイビー」

などの組み合わさったものでお伝えしておりましたが、

「62/レッド」なども含めて、
「レッド」のように抽出する事は可能でしょうか?

Re: [786] 特定の記号と記号の間の文字の抽出方法につきまして

あすかぜ [2023/10/13 22:33:45]

その場合、正規表現を「.*?/(.*?)([/×].*)?」のように変えてみてください。

ReplaceAll(".*?/(.*?)([/×].*)?", "$1", false, true, true, x, 1, x, Bottom);

「62/レッド」から「レッド」が抽出できるようになると思います。

Re: [786] 特定の記号と記号の間の文字の抽出方法につきまして

たける [2023/10/16 14:27:49]

いつもお世話になっております。

ご対応いただきましてありがとうございます。
希望通り動作いたしました。

ありがとうございました。

スレッド一覧に戻る返信