不同版本的tcl给出不同的答案

时间:2016-05-30 09:50:35

标签: regex tcl tclsh

我在tcl 8.0 verison中运行此函数。

proc test {} {
    set owner 212549316
    set val [regexp {[0-9]{9}} $owner]
    puts $val
}

tcl 8.6中的相同代码,输出为1但在tcl 8.0中为0。 我正在检查字符串是否只包含tcl 8.0中的9位数。

如何在tcl 8.0版本中使其工作的任何帮助。

1 个答案:

答案 0 :(得分:4)

在Tcl 8.0中,绑定(或限制)量词are not supported

要匹配Tcl 8.0中的9位数字,您必须重复<button class="item" ng-click="clickFun(somethingToClickOn)">ngClick</button> 9次:

[0-9]

从Tcl 8.1开始支持绑定量词,并引入高级正则表达式语法。

Tcl 8.0中提供的基本正则表达式语法仅包括:

set val [regexp {[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]} $owner]

请参阅 Practical Programming in Tcl and Tk, 3rd Ed. © 1999, Brent Welch, Ch 11, p. 146