APM: replacing tab separated blanks
Tom.Bakken
Tom.Bakken at tx.usda.gov
Wed Dec 4 12:46:47 CST 2002
That worked great! I would have stumbled around for a long time before
finding that one.
Thanks
Mike Stok wrote:
>
> On Wed, 4 Dec 2002, Tom.Bakken wrote:
>
> > I want to replace the following:
> >
> > TabTabTabTab
> >
> > with:
> >
> > Tab0Tab0TAb0
> >
> > when I use s/TabTab/Tab0Tab/g
> >
> > it only substitutes every other 0 because it begins searching AFTER the
> > last pattern match.
> > Is there anything like a gsub or tricky regular expression I could use
> > to avoid splitting each line and testing each element?
>
> To put 0 between every Tab you can use (?=Tab) to do a zero width
> assertion e.g.
>
> [mike at won mike]$ perl -de 1
>
> Loading DB routines from perl5db.pl version 1.19
> Editor support available.
>
> Enter h or `h h' for help, or `man perldebug' for more help.
>
> main::(-e:1): 1
> DB<1> $s = 'TabTabTabTab'
>
> DB<2> $s =~ s/(Tab)(?=Tab)/${1}0/g
>
> DB<3> print $s
> Tab0Tab0Tab0Tab
> DB<4>
>
> But I still have an extra 'Tab' on the end - your desired result was
> Tab0Tab0Tab0. If you want to get rid of that then you could just
>
> s/Tab$//;
>
> afterwards.
>
> Hope this helps,
>
> Mike
>
> --
> mike at stok.co.uk | The "`Stok' disclaimers" apply.
> http://www.stok.co.uk/~mike/ | GPG PGP Key 1024D/059913DA
> mike at exegenix.com | Fingerprint 0570 71CD 6790 7C28 3D60
> http://www.exegenix.com/ | 75D2 9EC4 C1C0 0599 13DA
>
> _______________________________________________
> Austin mailing list
> Austin at mail.pm.org
> http://mail.pm.org/mailman/listinfo/austin
--
Tom Bakken
More information about the Austin
mailing list