0
文字列内で " - "が検出されたときにsthを実行するコードを書いています。とき、私は実行します。Tclで " - "を無視する
regsub -all "-" $code "m" code
: - : - "" 別の文字と私は交換してみました
bad option "-": must be -exact, -glob, -regexp, -command procname or --
switch [string index $code $j] {
"-" { set mem($ptr) [expr $mem($ptr) - 1] ; }
しかし、Tclは、それはだとしてこれを解釈する "" switch
オプションのプレフィックスとして
でも同じです:
bad switch "-": must be -all, -nocase, -expanded, -line, -linestop, -lineanchor, -start, or --
それも、私が\u2d
を使用したときの動作:
--
が導入されたことを解決するために
regsub -all \u2d $code "m" code
switch $code \u2d {puts "hi" ;}
ヒントを使用している場合
だからあなたのコードが動作する...データとして次のトークンを扱い、他のスイッチは存在しません
--
後を意味し、スイッチの終わりを意味します。代わりに、 'set mem($ ptr)[expr $ mem($ ptr)-1]'の 'incr mem($ ptr)-1'を使ってください。もしそうでなければ、少なくともexpr {$ mem($ ptr)-1} 'の式を補ってください。 –