Tcl 使用regsub删除美元符号

Tcl 使用regsub删除美元符号,tcl,Tcl,现在,我的$arg返回一个货币值。例如:65.88美元 现在我试图去掉美元符号,因为我想做一些计算。 变量 以下方法不起作用。它仍然返回前面带有$符号的值 regsub -all {$} $arg {} arg $通常意味着行尾-避开$,一切都会好起来 [编辑] regsub -all {\$} $arg {} arg [/edit]此任务不需要正则表达式。使用string map将美元符号替换为空字符串,或搜索美元符号,然后使用string命令将其删除 正则表达式很好,但是如果你不理解它们

现在,我的$arg返回一个货币值。例如:65.88美元

现在我试图去掉美元符号,因为我想做一些计算。 变量 以下方法不起作用。它仍然返回前面带有$符号的值

regsub -all {$} $arg {} arg

$通常意味着行尾-避开$,一切都会好起来

[编辑]

regsub -all {\$} $arg {} arg

[/edit]

此任务不需要正则表达式。使用
string map
将美元符号替换为空字符串,或搜索美元符号,然后使用string命令将其删除


正则表达式很好,但是如果你不理解它们,而只是使用从互联网上获得的表达式,那么你只是创建了一个软件,你可能很难维护它

$通常表示行尾-转义$,所有应为wellregsub-all“\$”$hd\U rate“$hd\U rate”类似的内容?请参阅我对我的答案的编辑(和)regsub-all“\$”$arg”“arg放入“$arg”。这仍然会返回带有$preferd的值。这可能需要更多调查,我的答案是reg表达式的通用答案。你要么需要使用大括号,要么需要使用ecape转义。反斜杠对于双引号和正则表达式都是特殊的。具体的转换是:
set arg[string map{${}}$arg]