Posted to tcl by gwlester at Fri Jun 16 20:59:43 GMT 2017view raw

  1.  
  2. proc test {srvurl} {
  3. set validityRE {(?xi)
  4. ^
  5. # Path part (already must start with / character)
  6. (?: [-\w.~!$&'()*+,;=:@/] | %[0-9a-f][0-9a-f] )*
  7. # Query part (optional, permits ? characters)
  8. (?: \? (?: [-\w.~!$&'()*+,;=:@/?] | %[0-9a-f][0-9a-f] )* )?
  9. $
  10. }
  11. if {![regexp -- $validityRE $srvurl]} {
  12. # Provide a better error message in this error case
  13. if {[regexp {(?i)%(?![0-9a-f][0-9a-f])..} $srvurl bad]} {
  14. puts stdout "Yes!! That is it!!"
  15. }
  16. puts stdout "No, try again. :("
  17. }
  18. }
  19.  
  20. test {snafu?%##}
  21.