in reply to substitution in regular expression

Regex might not be the best way. And don't make mistakes on using loops or not. When you use the s///g operator (i.e. with the g modifier), you are in effect doing an implicit loop, even if it does not appear to be the case. Just as when you are using the grep or the map function, it may look as you are not looping on the source list or array, but you are just doing an implicit loop in that case (and the explicit loop of a for/foreach solution might often be actually slightly quicker).

All this to introduce the fact that I will propose a rather concise solution with an explicit loop in the following Perl one-liner:

$ perl -le 'my $s = "ABCDEF"; print substr $s, $_, 3 for 0..length($s) +-3;' ABC BCD CDE DEF
I did not check, but it is likely to be faster that any regex on large data input. Check it and tell your teacher about your findings on the various solutions, you might get an A+.

Replies are listed 'Best First'.
Re^2: substitution in regular expression
by aeqr (Novice) on Apr 23, 2014 at 21:54 UTC
    Thanks for the additional idea and explanations. Good to see you have a sense of humor as well ;)