2019年2月12日火曜日

使えそうで使えない substituteAllString のTips

ノード名とかに付いている数字を全部消したいなぁと思い、文字列の中から特定の文字を指定の文字へ置き換えるコマンド substituteAllString を使ってサンプルコードを書いてみたのですが、うまくいきませんでした。

書いてみたコードはこんな感じ

string $newName=substituteAllString($name,"[0-9]","");

なんか、正規表現は使用できないみたいですね・・・。
substitute では利くのでコッチでも出来るものだとばかり思っていました。




string $newName;
$newName=substituteAllString($name,"0","");
 ・
 ・
 ・
 ・
$newName=substituteAllString($newName,"9","");

無理やり使うならこうなりますけど、美しくないので、もう少しマシにしようと考えます。


string $new=$old;
while(`gmatch $new "*[0-9]*"`) $new=substitute("[0-9]",$new,"");

こんな感じで 0-9 が含まれなくなるまで substitute しまくる事に落ち着きました。



ちなみに コマンドヘルプ を読むと $searchStr は1文字だけのように感じますが、単語も検索可能のようです。

サンプル:
string $text="test_test_test_test_test_";
string $new=substituteAllString($text,"tes","");
print($new+"\n");

// Result: t_t_t_t_t_ //

と置き換わります。
てぃっ!てぃっ!てぃ・てぃー

0 件のコメント:

コメントを投稿