我必須分配IP地址和端口,並使用此代碼在正則表達式設置變量與零或一匹配
set str 192.168.1.1:44
set port 23
regexp {(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):(\d+)?} $str all ip port
puts $ip
puts $port
而且它完美的作品。但如果使用$ str沒有端口(例如192.168.1.1),則沒有設置變量並且TCL返回錯誤。
can't read "ip": no such variable
正則表達式「192.168.1.1」仍然匹配沒有端口(我和「if」語句檢查的話),沒有港口,但爲何它沒有返回變量?我期望$ all和$ ip。
它應該是'(:\ d +)'..你需要做'colon'可選 – rock321987