BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
sskt
Obsidian | Level 7

お世話になります。

 

特定の文字-や_などを半角スペースに置換したいと考えているのですが、うまくいきません。

半角スペースを削除する関数ならたくさんあるようなのですが。

以前にも同じような質問をしていたので、クォーテーションは不要とか引数の順番とか色々試してみましたが、わかりません。

詳しい方、やり方を教えていただけないでしょうか。

 

%let out = x_2023;
%let tout2 = %sysfunc(tranwrd(&out, '' ,"_")); 

 

1 ACCEPTED SOLUTION

Accepted Solutions
moriokayutaka
Fluorite | Level 6

%letでの記載,私も苦手ですが,もし単語が入っても大丈夫なようにtranwrdを使いたいってことであれば今回のケースだと


%let out = x_2023;
%let tout2 = %sysfunc(tranwrd(&out,_,));

でいけると思いますが(※置換文字列が0レングスの場合,半角スペース一つにするというtranwrdの働きで)

クォーティングからむ文字が対象のこともあるかもなので,以下とかの方が安全ですかね

%let out = x_2023;
%let tout2 = %sysfunc(tranwrd(&out,%str(_),%str( )) );



View solution in original post

1 REPLY 1
moriokayutaka
Fluorite | Level 6

%letでの記載,私も苦手ですが,もし単語が入っても大丈夫なようにtranwrdを使いたいってことであれば今回のケースだと


%let out = x_2023;
%let tout2 = %sysfunc(tranwrd(&out,_,));

でいけると思いますが(※置換文字列が0レングスの場合,半角スペース一つにするというtranwrdの働きで)

クォーティングからむ文字が対象のこともあるかもなので,以下とかの方が安全ですかね

%let out = x_2023;
%let tout2 = %sysfunc(tranwrd(&out,%str(_),%str( )) );