在expect脚本中,如何从字符串变量中删除一组特殊字符?

时间:2015-08-27 15:06:49

标签: tcl expect

假设我有一个设置为某个用户输入的变量。我无法控制用户输入的内容。

如何删除不在[A-Za-z0-9],空格,句号或逗号中的所有字符?

proc getUserInput {} {
    set timeout 60
    send_user "\nEnter user input: "
    expect_user {
        -re "(.*)\n" {
            set userInput $expect_out(1,string)
        }
        timeout {
            exitTimeout "Timed out waiting for user input!"
        }
    }
    return $userInput
}

set rawValue [ getUserInput ]
// massage variable goes here?
set massagedValue "$rawValue"

不确定是否重要,但我使用期望5.45。

$ expect -v
expect version 5.45

1 个答案:

答案 0 :(得分:1)

ExpectTcl扩展程序,因此您可以在编写Tcl脚本时使用所有Expect命令。您可以在tclsh

中尝试此操作
% set v1 "###the string###"
###the string###
% set v2 [regsub -all {[^ .,[:alnum:]]} $v1 ""]
the string
%