如何在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
}