You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TCL中使用regexp提取包含数字5的完整数值问题求助

TCL regexp提取含数字5的数值解决方案

你可以调整正则规则为匹配包含数字5的独立数字串,实现代码如下:

set x "55 6 90 5 89 105 7 85 191"
puts [regexp -all -inline {\y[0-9]*5[0-9]*\y} $x]

规则说明

你之前写的{9.+}规则是匹配以字符9开头、后面跟任意1个及以上字符的连续串,所以会从第一个出现的9开始一直匹配到字符串末尾,自然会包含大量不符合要求的内容。

上述正确代码的正则规则含义如下:

  • \y 是TCL正则中的单词边界标识,确保匹配的是独立的数值,不会出现把数值和前后其他字符粘在一起匹配的问题
  • [0-9]* 匹配0个或多个数字
  • 5 固定匹配数字5,确保整个数值里包含至少一个5
  • 组合起来的规则就是:匹配前后都是单词边界、由数字组成、内部至少包含一个5的完整字符串

运行上述代码输出结果为55 5 105 85,和你之前用lsearch实现的效果完全一致。

内容的提问来源于stack exchange,提问作者dodobirdie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 22:51:03