如何使用regexp将行拆分为列表(所有非空白字符的非空白字符序列都用逗号表示)。我试过了:
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
答案 0 :(得分:1)
您可以将逗号更改为空格,然后在空格上分割
set l [split [string map {, " "} $line]]
或者,使用来自tcllib
的splitxpackage require textutil::split
set l [textutil::split::splitx $line {[,\s]+}]
答案 1 :(得分:1)
如果您想使用regexp
和-inline
,只需使用:
% set list_ [regexp -inline -all -- {[^\s,]+} $line]
NAME NAME2 X Y X Y X Y X Y
[^\s,]+
匹配任何非空格字符和非逗号。