| |||||||||||
| |||||||||||
Square Bracket protection in Tcl
I was writing some string match examples in Tcl yesterday - and had the need to explicitly match square brackets within my string. But I couldn't just write the square brackets into the match string ...
• The square bracket first needed protection from the Tcl parser before it even got to the string match command. • Then it needed protection within the string match command to prevent it being interpreted as the start of a range. In both cases, a \ character can be used to provide protection - that's 2 \ characters that I need - but then the \ that protects the [ in the string match itself needs protecting from the command line interpreter, making a total of three protective characters needed. Thus: if {[string match *\\\[* $saying]} {"Does it have to be that hard?" you ask. No - you can also use { and } to defer the string match pattern, so that it's not interpreted by the command line, thus reducing the number of backslashes needed back down to just the one: if {[string match {*\[*} $saying]} {Here's a longer sample program also showing the use of { and ] in a string match to indicate any one character from a range: foreach saying {"The [world] is round" and here is how that runs: Dorothy:~/csr1 grahamellis$ tclsh ll2(written 2007-10-23 06:23:22) Associated topics are indexed under T205 - Tcl/Tk - String Handling in Tcl
Some other Articles
Reading from another process in Tcl (pipes and sockets)Away or home - which do I prefer? Sorting in Tcl - lists and arrays Tcl - global, upvar and uplevel. Square Bracket protection in Tcl Tcl - append v lappend v concat Tcl - using [] or {} for conditions in an if (and while) Dark Dawn Pictures Framed Someone else's wedding 1710 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 at 50 posts per pageThis is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price. Link to Ezine home page (for reading). Link to Blogging home page (to add comments). |
| ||||||||||
PH: 01144 1225 708225 • FAX: 01144 1225 707126 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho | |||||||||||