From: J. K. <jk...@jk...> - 2015-12-11 16:41:31
|
On December 11, 2015 10:46:09 AM EST, Abhishek Tiwari <abh...@au...> wrote: >Hi, > >Could you please suggest, why is this returning 2 >set str "<p><a href=\"%%track {http://www.lyris.com/\[dsfsdfsdfds\]} >-group >{html:1}%%\">asaawwqewqe</a></p> ><p><a href=\"%%track {http://www.lyris.com/\[merge >members_.FullName_\]} >-group {html:2}%%\">asaawwqewqe</a></p> ><p><a href=\"%%track {http://www.lyris.com/\[merge >members_.Additional_\]} >-group {html:3}%%\">asaawwqewqe</a></p>" > >set matchTuples [regexp -all -inline "%%track \{(.*)\}" $str] >puts [llength $matchTuples] > >Regards >Abhishek > > >------------------------------------------------------------------------ > >------------------------------------------------------------------------------ > > >------------------------------------------------------------------------ > >_______________________________________________ >Tcl-win mailing list >Tc...@li... >https://lists.sourceforge.net/lists/listinfo/tcl-win The (.*) part of the pattern is likely being greedy when you're expecting it not to be. I don't recall if Tcl features non-greedy matching, but in this case you can use ([^\}]*). This is a common pitfall with regex in any language. -- J. King |