// 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#"(?<=id="_wpnonce" name="_wpnonce" value=").*?(?=")"#).unwrap();
let string = "<form method=\"post\" enctype=\"multipart/form-data\" class=\"wp-upload-form\" action=\"http://localhost/wp-admin/update.php?action=upload-plugin\">
<input type=\"hidden\" id=\"_wpnonce\" name=\"_wpnonce\" value=\"a7a9167537\"><input type=\"hidden\" name=\"_wp_http_referer\" value=\"/wp-admin/plugin-install.php?tab=upload\"> <label class=\"screen-reader-text\" for=\"pluginzip\">Plugin zip file</label>
<input type=\"file\" id=\"pluginzip\" name=\"pluginzip\">
<input type=\"submit\" name=\"install-plugin-submit\" id=\"install-plugin-submit\" class=\"button\" value=\"Install Now\" disabled=\"\"> </form>";
// 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/