gpt4 book ai didi

regex - Tcl 正则表达式

转载 作者:行者123 更新时间:2023-12-03 23:02:41 27 4
gpt4 key购买 nike

set d(aa1) 1 
set d(aa2) 1
set d(aa3) 1
set d(aa4) 1
set d(aa5) 1
set d(aa6) 1
set d(aa7) 1
set d(aa8) 1
set d(aa9) 1
set d(aa10) 1
set d(aa11) 1
set regexp "a*\[1-9\]"
set res [array names d -glob $regexp]
puts "res = $res"

在这种情况下,结果是:

res = aa11 aa6 aa2 aa7 aa3 aa8 aa4 aa9 aa5 aa1

但是当我将正则表达式从 a*\[1-9\] 更改为 a*\[1-10\] 时,结果变为:

res = aa11 aa10 aa1

最佳答案

你的字符类有错误。

  • [1-10] 不代表 1 到 10 的数字
  • 意思是1-1,它是一个从11的字符(即简单的1),或者 0。这解释了您的输出。
  • 要表示从 1 到 10 的数字,请使用:(?:10?|[2-9])(作为实现此目的的几种方法之一。
  • 因此你的正则表达式变成了a*(?:10?|[2-9])
  • 请注意,如果您的引擎不允许非捕获组,您需要删除 ?:,因为:a*(?:10?|[2-9])

关于regex - Tcl 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24325775/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com