使用tcl中的数组名称来获取与regexp匹配的索引

时间:2011-03-10 12:18:04

标签: arrays tcl

以下数组在tcl

中设置
db(PR,)       =
db(PR,132754) = 5 6 7 8 9 10 11 12 13 14 31 32 33 34 35 36 37 38 39 40
db(PR,144917) = 2 3 28 29
db(PR,83055)  = 4 30

我想要除db(PR,)以外的所有数组索引,因为它在逗号后面没有任何内容

我试过了:

array names db -regexp PR,\d+

但它没有输出 和 数组名称db -regexp PR,* PR,144917 PR,132754 PR,PR,83055

返回不需要的PR,索引

那么如何消除数组索引输入的数组索引呢?

2 个答案:

答案 0 :(得分:4)

怎么样?
array names db -regexp PR,.+

响应:如果逗号后总是有数字(db(PR,)除外),你应该转义反斜杠

array names db -regexp PR,\\d+

或做

array names db -regexp PR,\[0-9]+

答案 1 :(得分:3)

如果标准只是“必须在逗号之后”,则可以像

一样简单
array names db -regexp ,. 
array names db -glob *,?*  ;# alternative