Posted to tcl by avl at Fri Jun 16 20:59:50 GMT 2017view pretty
proc t srvurl {
set validityRE {(?xi)
^
# Path part (already must start with / character)
(?: [-\w.~!$&'()*+,;=:@/] | %[0-9a-f][0-9a-f] )*
# Query part (optional, permits ? characters)
(?: \? (?: [-\w.~!$&'()*+,;=:@/?] | %[0-9a-f][0-9a-f] )* )?
$
}
if {![regexp -- $validityRE $srvurl]} {
# Provide a better error message in this error case
if {[regexp {(?i)%(?![0-9a-f][0-9a-f])..} $srvurl bad]} {
puts stdout "Yes!! That is it!!"
}
puts stdout error "No, try again. :("
}
}
% t http://foo.bar/snafu?%##
Yes!! That is it!!
wrong # args: should be "puts ?-nonewline? ?channelId? string"
% t /snafu?%##
Yes!! That is it!!
wrong # args: should be "puts ?-nonewline? ?channelId? string"
% t ?%##
Yes!! That is it!!
wrong # args: should be "puts ?-nonewline? ?channelId? string"
% t %##
Yes!! That is it!!
wrong # args: should be "puts ?-nonewline? ?channelId? string"