I think Gilles had another good idea with the [^[[:digit:]]]* to strip out all the leading non-digits instead of the first greedy .* Most often I find that if I start a regexp with .* it can be rewritten much more simply by rethinking, often ending up in a [^X]*([X]+) pattern like Gilles or the s/[^X]//g pattern like I did. .*? does work wonders too, but regexps written that way suffer from the "what the heck does this do?" syndrome 6 months down the road :) That said, having two .* in the same pattern usually ends up causing problems because of the very reasons we've gone through, and is a good sign to rethink the way you're matching. Sean On 5/9/07, Trevor Cordes <trevor@tecnopolis.ca> wrote:
On 9 May, Sean Walberg wrote:
The * operator is greedy, in perl .*? probably would have worked, I'm not sure if that feature exists in sed. Google around for "backtracking",
Sean beat me to it. Perl's non-greedy *? is what you want. Without it you're taking the most left-most first. I use perl's non-greedy modifiers *all* the time. Plus, perl let's you use \d instead of the horrific posix [[:digit:]] syntax.
_______________________________________________ Roundtable mailing list Roundtable@muug.mb.ca http://www.muug.mb.ca/mailman/listinfo/roundtable
-- Sean Walberg <sean@ertw.com> http://ertw.com/