fnever has asked for the wisdom of the Perl Monks concerning the following question:
this simple command line takes hours to finish...does anyone have a better solution?perl -e '$a="ATEH...GYS....I..CVNV...FGQ.....RTY.....F.YC.EY....G....D +....TE....RL...R..E....V.IA..SVG.E.L-.-.---..-----................... +...........................................................VPE.p-RTP. +Y.A..M.S..V.TPA.TK---------.......-........---TS........IYGY.GT.R.P.. +......VP.......D...LQCVSISNWSMAR.......................KI..GE.Y...L.. +LE...-....--..-.....-..--........--...R..GF.P....V..Y................ +..................................................................... +..............-...-.................................................. +....-.--....---EARV.D.P.L.TRL..V....IDR..RIT.T.............F......... +..GW.............CS........V.N.......RY..--.----.......-....-.--..... +.....................................................-............... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +................-.-.---DW.RH..Q.G...R....S..........ST...C.....D..... +IEV..D....CD.V.S...DL.V...A..V....P..D..DN.SW.-.......--..-P.L..YRC.. +L.S.F........DI.EC.....M..S..A.D......GG...---FPCAEKP...D.DIV........ +.I.QI..S.CV.CY.ET...G--.----..-Ggsadgaggvgvnggatpaptqshh............. +..................................................................... +........................gngesggipyypqaatagvgaqppVFG....R..SG..L...... +.H.....L......F.TI..GT.CDPVG--.....---..-.-...-..-.-----............. +...---.----...........................EADV..Y..EF--.P....SEY.EL.LLGFM +L.FFQRY.A..PSFMTGYNI.N...S..FDLKYILTR..L.E......Y..............L-.-.- +..-..-..--...Y..K........................L.DV.QR.F..C.KVPV..AQGG....R +FFLHSPT---..-...-LYrRH.Q.....D..RAS.FaaaA.A.NA..P..T.K............... +V.....Y........IS..G..CV.VVD.MY.PVCM....A....KT.--......N...SP.N.YK.L +N";if($a=~/(\S)[\.-]*(\S)[\.-]*(\S)[\.-]*(\S) +[\.-]*$/s){print "$1$2$3$4\n";}'
ok,i have a better solution,but why?...
perl -e '$a="ATEH...GYS....I..CVNV...FGQ.....RTY.....F.YC.EY....G....D +....TE....RL...R..E....V.IA..SVG.E.L-.-.---..-----................... +...........................................................VPE.p-RTP. +Y.A..M.S..V.TPA.TK---------.......-........---TS........IYGY.GT.R.P.. +......VP.......D...LQCVSISNWSMAR.......................KI..GE.Y...L.. +LE...-....--..-.....-..--........--...R..GF.P....V..Y................ +..................................................................... +..............-...-.................................................. +....-.--....---EARV.D.P.L.TRL..V....IDR..RIT.T.............F......... +..GW.............CS........V.N.......RY..--.----.......-....-.--..... +.....................................................-............... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +................-.-.---DW.RH..Q.G...R....S..........ST...C.....D..... +IEV..D....CD.V.S...DL.V...A..V....P..D..DN.SW.-.......--..-P.L..YRC.. +L.S.F........DI.EC.....M..S..A.D......GG...---FPCAEKP...D.DIV........ +.I.QI..S.CV.CY.ET...G--.----..-Ggsadgaggvgvnggatpaptqshh............. +..................................................................... +........................gngesggipyypqaatagvgaqppVFG....R..SG..L...... +.H.....L......F.TI..GT.CDPVG--.....---..-.-...-..-.-----............. +...---.----...........................EADV..Y..EF--.P....SEY.EL.LLGFM +L.FFQRY.A..PSFMTGYNI.N...S..FDLKYILTR..L.E......Y..............L-.-.- +..-..-..--...Y..K........................L.DV.QR.F..C.KVPV..AQGG....R +FFLHSPT---..-...-LYrRH.Q.....D..RAS.FaaaA.A.NA..P..T.K............... +V.....Y........IS..G..CV.VVD.MY.PVCM....A....KT.--......N...SP.N.YK.L +N";if($a=~/.*(\w)[\.-]*(\w)[\.-]*(\w)[\.-]*(\ +w)[\.-]*/s){print "$1$2$3$4\n";}'
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: why this regular expression is so slow?
by ELISHEVA (Prior) on Jul 15, 2009 at 07:30 UTC | |
|
Re: why this regular expression is so slow?
by moritz (Cardinal) on Jul 15, 2009 at 07:13 UTC | |
|
Re: why this regular expression is so slow?
by AnomalousMonk (Archbishop) on Jul 15, 2009 at 07:52 UTC | |
by fnever (Initiate) on Jul 16, 2009 at 00:35 UTC | |
|
Re: why this regular expression is so slow?
by CountZero (Bishop) on Jul 15, 2009 at 06:02 UTC | |
by AnomalousMonk (Archbishop) on Jul 15, 2009 at 06:47 UTC | |
|
Re: why this regular expression is so slow?
by JavaFan (Canon) on Jul 15, 2009 at 09:38 UTC | |
by Corion (Patriarch) on Jul 15, 2009 at 09:44 UTC | |
|
Re: why this regular expression is so slow?
by ikegami (Patriarch) on Jul 15, 2009 at 14:11 UTC |