我正在使用以下代码来匹配像cell ("acf12bcjd6")
. 引号内的值不断变化,我必须捕获所有这些值。我使用的代码是:
foreach searched_data $final {
[regexp {cell\(.*\)+} $searched_data match]
puts "$match"
}
但是我收到一条错误消息,说“无法达到匹配,没有这样的变量”。我不明白我的错误。我做对了吗?
您的程序失败,因为正则表达式模式与字符串不匹配,因此match
未设置。尝试这个
foreach searched_data $final {
if {[regexp {cell +\(\"(.*)\"\)} $searched_data junk match]} {
puts stdout $match
}
}
该模式假定cell
和左括号之间的空格是可选的。我还假设您希望去掉引号。
尝试改用这个:
foreach searched_data $final {
set match [regexp {cell ?\([^)]*\)} $searched_data]
puts "$match"
}