2012-08-31 67 views
3

可能重複:
How to use a variable in regexp expression (TCL/Expect)一個正則表達式內傳遞變量在TCL

我想幫助傳遞變量下的正則表達式。

假設我的代碼是

set line "MPID:22 condition:AIS" 
set id 22 
if {[regexp {MPID:$id} $line]} { 
puts "inside if" 
} 

這個規則表達式不起作用。如果我將正則表達式更改爲

{[regexp {MPID:22} $line]} 

它的工作原理。

有人可以爲此提供解決方案。

+0

閱讀[Tcl教程](http://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html)的第5章到第7章來理解爲什麼你的'$ id'變量引用沒有被擴展。建議閱讀整個教程。 – kostix

回答

10

代替{MPID:$id}要使用"MPID:$id"

if {[regexp "MPID:$id" $line]} { 
    puts "inside if" 
} 

{...}用於通過TCL於表達的組份在一起,但防止變量擴展。
如果你想要變量擴展,你應該使用"..."

相關問題