use strict;
my $str = '<script type="text/javascript">
var videoPlayer = document.createElement("video");
videoPlayer.setAttribute("id", "videoplayer");
videoPlayer.setAttribute("width", "580");
videoPlayer.setAttribute("height", "450");
videoPlayer.setAttribute("poster", "/static/images/logo.png");
videoPlayer.setAttribute("autoplay", true);
videoPlayer.setAttribute("controls", "");
var em = document.createElement("em");
em.innerHTML = "Sorry, your browser doesn\'t support HTML5 video.";
videoPlayer.appendChild(em);
document.getElementById("player_div").appendChild(videoPlayer);
function setupVideo() {
if (Hls.isSupported()) {
var video = document.getElementById(\'videoplayer\');
var player = new Hls();
player.attachMedia(video);
player.on(Hls.Events.MEDIA_ATTACHED, function () {
var hlsUrl = "http://" + ea + ":8088/live/shid04/playlist.m3u8?id=95328&pk=";
hlsUrl = hlsUrl + enableVideo("5be02e45f5917b29199f8e5326499a6f8c6c7c9df86920b38c09bee46b050289");
player.loadSource(hlsUrl);
player.on(Hls.Events.MANIFEST_PARSED, function (event, data) {
video.play();
});
});
}else {
em.innerHTML = "Sorry, your browser doesn\'t support HTML5 video.";
}
}
</script>';
my $regex = qr/playlist\.m3u8\?id=([^&=>]+).*?enableVideo\("([^"]*)/sp;
if ( $str =~ /$regex/ ) {
print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n";
# print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n";
# print "Capture Group 2 is $2 ... and so on\n";
}
# ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p'
# Named capture groups can be called via $+{name}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html