0

正規表現を使用して行をリストに分割する方法 (カンマを除くすべての非空白文字の空でないシーケンス)。私は試してみました:

set list_  [regexp -inline -all {\S+\[,]} $line]

しかし、うまくいきません。

たとえば、次のような行の場合:

NAME NAME2  X,Y X,Y X,Y X,Y  

XY浮動小数点数です

結果は次のようになります。

NAME NAME2  X Y X Y X Y X Y
4

2 に答える 2

1

コンマをスペースに変更してから、空白で分割できます

set l [split [string map {, " "} $line]]

または、tcllib の splitx を使用します。

package require textutil::split
set l [textutil::split::splitx $line {[,\s]+}]
于 2013-07-11T09:37:14.237 に答える
1

regexpと を使用したい場合は-inline、次のように簡単に使用できます。

% set list_ [regexp -inline -all -- {[^\s,]+} $line]
NAME NAME2  X Y X Y X Y X Y

[^\s,]+非スペース文字および非コンマに一致します。

于 2013-07-11T10:25:37.230 に答える