#!/usr/local/bin/tclsh
# $Id: regexmatch.tcl,v 1.9 2001/03/15 17:01:52 doug Exp $
# http://www.bagley.org/~doug/shootout/
# from: Miguel Sofer, with modifications by Kristoffer Lawson
proc main {} {
global argv
set NUM [lindex $argv 0]
if {$NUM < 1} {
set NUM 1
}
set phones [split [read stdin] "\n"]
set count 0
set rExp {(?:^|[^\d(])(\(\d{3}\)|\d{3}) (\d{3})[ -](\d{4})($|[^\d])}
while {$NUM > 0} {
incr NUM -1
foreach phone $phones {
if {[regexp $rExp $phone match area exch num]} {
if {! $NUM} {
incr count 1
puts "$count: ([string trim $area () ]) $exch-$num"
}
}
}
}
}
main