我Expect
用作测试框架并编写一些辅助函数来简化expect
命令匹配模式的键入。
因此,我寻找将任何字符串转换为字符串的函数,其中所有特殊的正则表达式语法都已转义(如*
、|
、和其他字符) +
,[
因此我可以将任何字符串放入正则表达式,而不必担心我会破坏正则表达式:
expect -re "^error: [escape $str](.*)\\."
refex "^error: [escape $str](.*)\\." "lookup string..."
因为expect -ex
编写expect -gl
转义函数非常容易。但是expect -re
因为我是 TCL 的新手,所以很难......
PS我写了这段代码,目前正在测试它们:
proc reEscape {str} {
return [string map {
"]" "\\]" "[" "\\[" "{" "\\{" "}" "\\}"
"$" "\\$" "^" "\\^"
"?" "\\?" "+" "\\+" "*" "\\*"
"(" "\\(" ")" "\\)" "|" "\\|" "\\" "\\\\"
} $str]
}
puts [reEscape {[]*+?\n{}}]