Tcl/Tk:文字列から特定の文字列を消したい

Imoto
Imoto
Altair Employee
edited June 2018 in 質問と回答 (Q&A)

例えば、「aabbccddeeddggqqlldd」という文字列から、「dd」だけを消した状態にしたい場合は、下記のようにします。

 

方法1:splitコマンドを使う方法

set ORIGINAL 'aabbccddeeddggqqlldd';
set REMOVE 'dd';
set NEWNAME '';
foreach S [split $ORIGINAL $REMOVE] {
 if {$S != ''} {
  append NEWNAME $S;
 }
}
puts '$NEWNAME';

 

方法2:regsubコマンドを使う方法

set ORIGINAL 'aabbccddeeddggqqlldd';
set REMOVE 'dd';
set NEWNAME [regsub -all $REMOVE $ORIGINAL ''];

 

いずれも実行すると、「aabbcceeggqqll」が返るハズです。