私は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{}}]