我在变量中有以下数据:
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 有什么办法吗??
发布于 2016-06-22 07:38:49
% set input "Timestamp,6/22/2016 2:25:00 AM
mos,4.16
jitter,19.22"
Timestamp,6/22/2016 2:25:00 AM
mos,4.16
jitter,19.22
% set lines [split $input \n]
{Timestamp,6/22/2016 2:25:00 AM} mos,4.16 jitter,19.22
% foreach line $lines {
lassign [split $line ,] varname value
set $varname $value
set result($varname) $value
}
% set Timestamp
6/22/2016 2:25:00 AM
% set mos
4.16
% set jitter
19.22
% parray result
result(Timestamp) = 6/22/2016 2:25:00 AM
result(jitter) = 19.22
result(mos) = 4.16发布于 2016-06-22 08:44:48
为了完整起见,Dinesh的解决方案有两个变体:
foreach item [split $input \n] {
set value [lassign [regsub , $item { }] name]
set result($name) $value
}这里的主要区别是它只在第一个逗号上拆分(得到的字符串被当作一个带可能多个元素的规则空格分隔的列表,因此可以选择调用lassign)。
foreach {- name value} [regexp -line -inline -all {^([^,]+),(.*)$} $input] {
set result($name) $value
}这一次演示了Donal提出的正则分裂。
文档:前程,拉什,Tcl正则表达式的语法,雷杰普,雷格,设置,拆分
发布于 2016-06-22 07:29:20
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 .https://stackoverflow.com/questions/37961121
复制相似问题