我是TCL的新手并寻求帮助来处理以下表达式。 我从用户那里获得了i / p字符串,以验证以下任何字符串& CLI中没有其他人使用过程
{ GHI GII GJI GKI}
另一个棘手的问题是写regexp以匹配以字母A和A开头的字符。以B结束,在使用程序之间也有1个或更多的YO或OY。 谢谢
答案 0 :(得分:3)
如果那是你的输入,那么真的没有必要使用正则表达式:只需检查提供的单词是否在该列表中:
set input { GHI GII GJI GKI}
foreach word {GJI GLI} {
if {$word in $input} {
puts "$word is in [list $input]"
} else {
puts "$word is not in [list $input]"
}
}
匹配“以字母A开头并以B结尾,也包含YO或OY中的1个或多个”的正则表达式:
set re {^A(?:YO|OY)+B$}
foreach word {AYOB AYOOYB AYYB} {
if {[regexp $re $word]} {
puts "$word matches"
} else {
puts "$word does not match"
}
}
如果你的意思是“(1个或更多的YO)或(1个或更多的OY),那么正则表达式是
set re {^A(?:(?:YO)+|(?:OY)+)B$}