Codeforces Unknown Language Round #1 F "Domain"

問題:http://codeforces.com/contest/64/problem/F

参加形式:本番

文字列が与えれる.数字とアルファベットの小文字とドット(.)で構成されており,行頭と末尾がドットではなく,最後のドットの後の文字数が2または3であるかどうかを求める.

正規表現+ドットで区切られた文字列の長さを検査.

コード

gets stdin line
if [regexp {^[0-9a-z.]*$} $line] {
	set li [split $line "."]
	foreach {v} $li {
		if [llength $v]<1 {
			puts "NO"
			return 
		}
	}
	set len [string length [lindex $li end]]
	if $len!=2&&$len!=3 {
		puts "NO"
		return
	}
	puts "YES"
} else {
	puts "NO"
}