bowei_99 has asked for the wisdom of the Perl Monks concerning the following question:
1. Parse the following text:
2. Move the third set of lines, i.e.:#EXTM3U #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=80000 80.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=400000 400.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=700000 700.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1500000 1500.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2500000 2500.m3u8
to the top, right under #EXTM3U, so that it would show up as line 2. The other lines should be kept the same, just shifted down.#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=700000 700.m3u8
I've written the following:
which yields:$text = <<'LIST'; #EXTM3U #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=80000 80.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=400000 400.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=700000 700.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1500000 1500.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2500000 2500.m3u8 LIST $text =~ m{ (\#EXT-X-STREAM-INF:PROGRAM-ID= \d+, BANDWIDTH=\d+ \s* \d+\.m3u8) }xms; print "1 - $1, 2 - $2, 3 - $3\n";
However, I'm not sure how to specify in the regex to split by: a) the first chunk being the top two entries, b) the second chunk being what I want to move, c) the last chunk. I figure once I have that, it's a simple matter of specifying $1, $2 and $3 in the replacement part of the regex.# ./test.pl 1 - #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=80000 80.m3u8, 2 - , 3 -
Note that I realize I could split this into an array, but I'm trying to find an efficient regex to do the job here. Thoughts?
-- Burvil
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Multiline regex for moving lines?
by kcott (Archbishop) on Sep 05, 2013 at 02:42 UTC | |
Re: Multiline regex for moving lines?
by Athanasius (Archbishop) on Sep 05, 2013 at 03:01 UTC | |
Re: Multiline regex for moving lines?
by johngg (Canon) on Sep 05, 2013 at 08:15 UTC | |
Re: Multiline regex for moving lines?
by Anonymous Monk on Sep 05, 2013 at 02:33 UTC | |
Re: Multiline regex for moving lines?
by Laurent_R (Canon) on Sep 05, 2013 at 06:13 UTC |