| 2023/05/28(Sun) 18:02:59 編集(投稿者)
2023/05/28(Sun) 17:46:34 編集(投稿者) 2023/05/28(Sun) 17:33:31 編集(投稿者)
> "/123abc*#" のような文字列があったとします > 記号位置と記号文字数はランダムです > > > ここから項目計算式で、英数字を除いた"/*#"のみを取り出したいのですが
表 会話式での式は 解りませんが、
&比較式="/123abc*#",&STR="" 繰り返し &置換式=#部分列(&比較式,#IS記号(&比較式,0),1) 条件 (#IS記号(&置換式,1)=0) 繰り返し中止 &比較式=#文字置換(&比較式,&置換式,"") &STR=&STR+&置換式 繰り返し終了
変数書き出し "記号",{&STR},終了状態=&秒
で なると思います。
#IS記号 という 関数 と #部分列 関数 でできると思います。
同じ内容ですが if文でやってみました。
&比較式="/123abc*#/%%",&STR="" 繰り返し 条件 (#IS記号(&比較式,0)=0) 繰り返し中止 if(#IS記号(&比較式,0)>0) &置換式=#部分列(&比較式,#IS記号(&比較式,0),1) &比較式=#文字置換(&比較式,&置換式,"") &STR=&STR+&置換式 end 繰り返し終了 変数書き出し "記号",{&STR},終了状態=&秒
半角のみ抽出の場合
&比較式="/123abc*#/%%",&STR="" 繰り返し 条件 (#IS記号(&比較式,0)=0) 繰り返し中止 if(#IS記号(&比較式,0)>0) &置換式=#部分列(&比較式,#IS記号(&比較式,0),1) if(#IS全角(&置換式,0)=0) &STR=&STR+&置換式 end &比較式=#文字置換(&比較式,&置換式,"") end 繰り返し終了 変数書き出し "記号",{&STR},終了状態=&秒
全角のみ抽出の場合
&比較式="/123abc*#/%%",&STR="" 繰り返し 条件 (#IS記号(&比較式,0)=0) 繰り返し中止 if(#IS記号(&比較式,0)>0) &置換式=#部分列(&比較式,#IS記号(&比較式,0),1) if(#IS半角(&置換式,0)=0) &STR=&STR+&置換式 end &比較式=#文字置換(&比較式,&置換式,"") end 繰り返し終了 変数書き出し "記号",{&STR},終了状態=&秒
変数書き出し は 一つの例です
行訂正 []=&STR
|