【发布时间】:2013-04-07 03:39:01
【问题描述】:
我想使用命令行参数将正则表达式列表传递到我的 TCL 脚本(目前使用 TCL 8.4,但稍后将使用 8.6)。现在,我的脚本有一个可选标志,您可以设置它,称为-spec,后面是正则表达式列表。 (它还有一些其他的可选标志。)
所以这是我希望能够从命令行执行的操作:
>tclsh84 myscript.tcl /some/path -someflag somearg -spec "(f\d+)_ (m\d+)_"
然后在我的脚本中,我会有这样的东西:
set spec [lindex $argv [expr {[lsearch $argv "-spec"] + 1}]]
foreach item $spec {
do some stuff
}
除了我传入正则表达式列表的部分外,我让它工作。上述方法不适用于传入正则表达式......但是,如果没有引号,它的行为就像两个参数而不是一个,并且大括号似乎也不能正常工作。有更好的解决方案吗? (我是个新手……)
提前感谢您的帮助!
【问题讨论】:
标签: regex tcl command-line-arguments