如何使用正则表达式将行拆分到列表(所有非空白字符的非空序列,逗号除外)。我尝试过:
set list_ [regexp -inline -all {\S+\[,]} $line]
但它不起作用。
例如:对于这样的行:
NAME NAME2 X,Y X,Y X,Y X,Y
X
,Y
是浮点数
结果应该是:
NAME NAME2 X Y X Y X Y X Y
如果你想使用regexp
and -inline
,你可以简单地使用:
% set list_ [regexp -inline -all -- {[^\s,]+} $line]
NAME NAME2 X Y X Y X Y X Y
[^\s,]+
匹配任何非空格字符和非逗号。
您可以将逗号更改为空格,然后在空格上拆分
set l [split [string map {, " "} $line]]
或者,使用 tcllib 中的 splitx
package require textutil::split
set l [textutil::split::splitx $line {[,\s]+}]