在期望脚本上比较字符串和正则表达式

时间:2014-02-13 22:14:38

标签: regex expect

我正在尝试使用正则表达式在我的期望脚本中进行简单的比较。但是,由于某种原因,它不起作用。

if { $loadNum == {[0-9]+} } {
  Do something
} else {
  Exit
}

loadNum是我从用户那里得到的输入,我只是想确保它只是一个数字。 但是,使用上面的脚本,它总是会遇到其他情况。

你可以帮助我找到我做错的事吗?

2 个答案:

答案 0 :(得分:2)

为什么要将字符串与正则表达式进行比较?我认为你应该使用命令“regexp”。

if {[regexp {[0-9]+} $loadNum]} {
  Do something
} else {
  Exit
}

答案 1 :(得分:1)

如果您想检查字符串是否包含数字:

if {[regexp {\d} $loadNum]}
# or
if {[string match {[0-9]} $loadNum]}

如果您想检查您的字符串是否只是 ,请选择

之一
if {[regexp {^\d+$} $loadNum]}
if {![regexp {\D} $loadNum]}
if {![string match {[^0-9]} $loadNum]}