如何在tcl中拆分一个变量并将其结果存储在不同的变量中

如何在tcl中拆分一个变量并将其结果存储在不同的变量中,tcl,Tcl,我在变量中有以下数据: Timestamp,6/22/2016 2:25:00 AM mos,4.16 jitter,19.22 我想拆分此变量并将结果存储在3个不同的变量中,如下所示: Timestamp = 6/22/2016 2:25:00 AM mos = 4.16 jitter = 19.22 有什么方法可以做到这一点吗?为了完整起见,Dinesh的解决方案有两种变体: Timestamp,6/22/2016 2:25:00 AM mos,4.16 ji

我在变量中有以下数据:

Timestamp,6/22/2016 2:25:00 AM
mos,4.16
jitter,19.22
我想拆分此变量并将结果存储在3个不同的变量中,如下所示:

Timestamp = 6/22/2016 2:25:00 AM
mos = 4.16
jitter = 19.22 

有什么方法可以做到这一点吗?

为了完整起见,Dinesh的解决方案有两种变体:

     Timestamp,6/22/2016 2:25:00 AM
    mos,4.16
    jitter,19.22
    You can spit with (,) and you find an array . 
    then you retrieve the value of Index wise .
    As :- if variable name is var="6/22/2016 2:25:00 AM,4.16,19.22";  
    then   String[] val= var.split(",");
    val[0] = 6/22/2016 2:25:00 AM ;
    val[1] = 4.16;
    val[2] = 19.22;

if your technology is java .
foreach item [split $input \n] {
    set value [lassign [regsub , $item { }] name]
    set result($name) $value
}
这里的主要区别在于,它只在第一个逗号上(准)拆分(生成的字符串被视为一个规则的空格分隔列表,可能包含两个以上的元素,因此可以选择调用
lassign

这一个演示了Donal建议的正则表达式拆分


文档:,,,

我更倾向于使用
regexp-inline{^([^,]+),(.*)$}
进行每行拆分,因为这更能抵抗值中逗号的问题,但除此之外,这是正确的方法。我还喜欢将值放入数组中;它避免了以后的各种意外。
foreach item [split $input \n] {
    set value [lassign [regsub , $item { }] name]
    set result($name) $value
}
foreach {- name value} [regexp -line -inline -all {^([^,]+),(.*)$} $input] {
    set result($name) $value
}