2016-08-27 12 views
0

私は2つの文字列を一致させようとしています....私はリストから取得している文字列の1つと他のものが私によって宣言されています。Tclの正規表現は動作しません

set name " HTTP REQUEST = 1\n HTTP REQUEST(SUCCESS) = 0\nSERVER CONN = 1" 
set pattern "HTTP REQUEST(SUCCESS)*" 
set List [split $name "\n"] 
foreach var $List { 
    set var [lindex $List 1] 
    #set var2 [string trim $var1 " "] 

}  
puts $var 
if {[regexp $var $pattern match]} { 
    puts " matched!" 
    puts $match 
} else { 
    puts " not matched!" 
} 
+1

括弧をエスケープする必要があります参照してください - '設定されたパターン "HTTPリクエスト\\(SUCCESS \\)"' –

答えて

2

は、2個のエラーがあります。

  • 括弧は、テキスト入力が

ので使用regexpコールにパターン後を行くべき

  • リテラルバックスラッシュでエスケープする必要があります

    set pattern {HTTP REQUEST\(SUCCESS\)} 
             ^ ^
    

    、その後

    if {[regexp $pattern $var match]} { 
          ^^^^^^^^^^^^^ 
    

    this code demo

  • 関連する問題