2012-04-18 95 views
0

现在我的$ arg返回一个货币值。例如:$ 65.88使用regsub删除美元符号

现在我试图删除美元符号,因为我想对此做一些计算。 变量。 以下不起作用。它仍然返回一个带有$符号的值。

regsub -all {$} $arg {} arg 
+0

$通常意味着行结束 - 逃避$和所有应该是好 – KevinDTimm 2012-04-18 14:17:57

+0

regsub -all“\ $”$ hd_rate“”$ hd_rate像这样? – Micheal 2012-04-18 14:31:24

+0

请参阅我的编辑回答(和http://www.tcl.tk/man/tcl8.4/TclCmd/regsub.htm#M13) – KevinDTimm 2012-04-18 14:40:31

回答

3

$通常是指线的终点 - 逃脱$,所有应该很好

[编辑]

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

[/编辑]

+0

regsub -all“\ $”$ arg“”arg \t puts“ $ arg“.. ..这仍然返回$值前面的$ – Micheal 2012-04-18 14:34:51

+0

这可能需要更多的调查,我的答案是通用的reg表达式 – KevinDTimm 2012-04-18 14:37:14

+2

您或者需要使用大括号,或者您需要避开逃生。反斜杠对于双引号和正则表达式都是特殊的 – 2012-04-18 14:38:48

5

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

正则表达式很好,但如果您不理解它们,只是使用表达式而不是网络,那么您刚创建的软件可能难以维护。

+0

具体的转换将是:'set arg [string map {$ {}} $ arg]' – 2012-04-19 09:26:38