// include the latest version of the regex crate in your Cargo.toml
extern crate regex;
use regex::Regex;
fn main() {
let regex = Regex::new(r#"(?s)playlist\.m3u8\?id=([^&=>]+).*?enableVideo\("([^"]*)"#).unwrap();
let string = "<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>";
// result will be a tuple containing the start and end indices for the first match in the string
let result = regex.captures(string);
let (start, end) = match result {
Some((s, e)) => (s, e),
None => {
// ...
}
};
println!("{}", &string[start, end]);
}
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 Rust, please visit: https://docs.rs/regex/latest/regex/