I'm trying to figure out how to use a string in a regexp match. I have been searching on google for an hour, figured i would just ask the experts.
This works:
#!/usr/bin/expect
set MYSTR "value"
if [ regexp -nocase "$MYSTR" $outcome matchresult ] then {
...
}
This is not working:
#!/usr/bin/expect
set MYSTR "value"
if [ regexp -nocase {something here:\s+$MYSTR} $outcome matchresult ] then {
...
}
I'm sure it's a simple syntax problem.
Thanks for your help
Right. You have 2 options: enclose the pattern with "
, but then you have to protect \
from being parsed by Tcl instead of the regxp. Or you can use regexp -nocase [subst -nocommands -nobackslashes {something here:\s+$MYSTR}]
.
PS: put always {}
around the expression:
if {[regexp -nocase [subst -nocommands -nobackslashes {something here:\s+$MYSTR}]} then {
...
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With