使用 tcl 中的数组名称来获取与正则表达式匹配的索引

发布于 2024-10-21 12:54:52 字数 421 浏览 2 评论 0原文

以下数组在 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, 索引

那么我如何消除该数组索引以获取数组名称输出呢?

Following array is set in 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

I want all the array indices except db(PR,) since it has nothing after comma

I tried:

array names db -regexp PR,\d+

but it gives no output
and
array names db -regexp PR,*
PR,144917 PR,132754 PR, PR,83055

return unwanted PR, index

So how can i eliminate that array index from getting in array names output?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

薄情伤 2024-10-28 12:54:52

又怎样呢

array names db -regexp PR,.+

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

array names db -regexp PR,\\d+

或执行以下操作

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

What about

array names db -regexp PR,.+

?

Resp.: If there are always digits after the comma (except for db(PR,)) you should escape the backslash

array names db -regexp PR,\\d+

or do

array names db -regexp PR,\[0-9]+
治碍 2024-10-28 12:54:52

如果标准只是“必须是逗号后面的内容”,那么它可以简单到

array names db -regexp ,. 
array names db -glob *,?*  ;# alternative

If the criterion is simply "must be something after the comma", it can be as simple as

array names db -regexp ,. 
array names db -glob *,?*  ;# alternative
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文