Posted to tcl by kbk at Wed Nov 29 19:54:14 GMT 2006view pretty
proc OptionalUnicode {x} { return TEST$x } set teststring { this a[:optional_unicode(foo):]b c[:optional_unicode(bar):]d that } set pattern {\[\:optional_unicode\(([^)]*)\):\]} set i 0 set output {} while {[regexp -indices -start $i $pattern $teststring whole part]} { foreach {i0 i3} $whole break foreach {i1 i2} $part break append output \ [string range $teststring $i [expr ($i0-1)]] \ [OptionalUnicode [string range $teststring $i1 $i2]] set i [expr {$i3 + 1}] } append output [string range $teststring $i end] puts $output
Comments
Posted by joseki at Wed Nov 29 20:03:50 GMT 2006 [text] [code]
proc regsub-eval { pattern teststring } { set i 0 set output {} while {[regexp -indices -start $i $pattern $teststring whole part]} { foreach {i0 i3} $whole break foreach {i1 i2} $part break append output \ [string range $teststring $i [expr ($i0-1)]] \ [Optional_Unicode [string range $teststring $i1 $i2]] set i [expr {$i3 + 1}] } append output [string range $teststring $i end] } set pattern {\[\:optional_unicode\(([^)]*)\):\]} set xml [ regsub-eval $pattern $xml ]