2012-08-01 3 views
4

정규 표현식에서 문자열을 사용하는 방법을 알아 내려고하고 있습니다. 나는 한 시간 동안 구글에서 검색을 해왔다. 전문가들에게 물어 보았다.정규 표현식 (TCL/Expect)에서 변수를 사용하는 방법

이 작품이 작동하지 않습니다

#!/usr/bin/expect 

set MYSTR "value" 

if [ regexp -nocase "$MYSTR" $outcome matchresult ] then { 
... 
} 

: 나는 그것이 간단한 문법 문제 확신

#!/usr/bin/expect 

set MYSTR "value" 

if [ regexp -nocase {something here:\s+$MYSTR} $outcome matchresult ] then { 
... 
} 

.

귀하의 도움에 감사드립니다.

답변

10

오른쪽. 2 가지 옵션이 있습니다 : 패턴을 "으로 묶으십시오. 그런 다음 \이 regxp 대신 Tcl로 구문 분석되지 않도록 보호해야합니다. 또는 regexp -nocase [subst -nocommands -nobackslashes {something here:\s+$MYSTR}]을 사용할 수 있습니다.

PS : 항상 {}around theexpression 넣어 :

if {[regexp -nocase [subst -nocommands -nobackslashes {something here:\s+$MYSTR}]} then { 
... 
} 
+0

감사합니다! 고맙습니다! – Jared