正規表現を使用して行をリストに分割する方法 (カンマを除くすべての非空白文字の空でないシーケンス)。私は試してみました:
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
コンマをスペースに変更してから、空白で分割できます
set l [split [string map {, " "} $line]]
または、tcllib の splitx を使用します。
package require textutil::split
set l [textutil::split::splitx $line {[,\s]+}]
regexp
と を使用したい場合は-inline
、次のように簡単に使用できます。
% set list_ [regexp -inline -all -- {[^\s,]+} $line]
NAME NAME2 X Y X Y X Y X Y
[^\s,]+
非スペース文字および非コンマに一致します。