【发布时间】:2016-09-07 14:15:21
【问题描述】:
我是 TCL 编程新手。我想编写一个 tcl 代码来检查给定字符串中是否存在任何模式 HAT GET DOT,如果存在,我们应该显示给定字符串中存在模式 HAT GET DOT 中的哪一个。如果字符串中存在多个模式,则应显示所有匹配的模式。我编写了以下代码,但即使多个模式与给定字符串匹配,它也只显示一个模式。
有人可以帮忙吗?
提前谢谢你
代码:
set data1 {asdGETdf ferGETfhgDOT} #data1 is the given string
foreach index $test_data1 {
set result [regexp {ABC|ACC|ADC|AXC} $index match]
puts "\n$index"
if { $result==1} {
puts "MATCH:$match"
} else {
puts "NO MATCH"
}
}
output:-asdGETdf
MATCH:GET
ferGETfhgDOT
MATCH:GET
对于第二个字符串,我希望它显示GET 和DOT(而不是像输出中那样单独显示GET)。
我认为这是因为一旦找到匹配项,正则表达式就会结束搜索。但是如何显示所有模式匹配?
【问题讨论】: