I was looking to build a regex statement to always remove the first 3 lines of the string, and last 3 lines of the string (the middle part could be any n number of lines content). Any clean regex way to acheive this output? (i.e. always strip our first 3 lines and last 3 lines of the string - and preserve the middle part, which could be a variable # of lines)
Thanks.
e.g.
Input String:
"
1
2
3
<1...n # of lines content>
4
5
6
"
To desired output string:
"<1..n # of lines content>"
The previously given solutions are really complex! All one needs is
s/^(?:.*\n){1,3}//;
s/(?:.*\n){1,3}\z//;
If you want to accept a lack of trailing newline at the end, you can use
s/\n?\z/\n/;
s/^(?:.*\n){1,3}//;
s/(?:.*\n){1,3}\z//;
or
s/^(?:.*\n){1,3}//;
s/(?:.*\n){0,2}.*\n?\z//;