// 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"(?im)<a (.*?)test(.*?)<\/a>").unwrap();
let string = "<a style=\"text-decoration: none;\" target=\"_blank\" href=\"http://example.com/?qs=df8fc6df1b3b6e7b87c5c8da8e2c0ad34b73a19751c15d1b3efbf37c3ded58b9cca09ee6d80e64bc\"><img width=\"120\" height=\"81\" border=\"0\" style=\"display: block; font-family: Arial,Helvetica,sans-serif; font-size: 14px; color: #004990;\" title=\"example.com\" alt=\"example.com\" src=\"http://example.com/lib/fe8f12717d67017f72/m/5/20140513_example_Logo1.jpg\" /></a></td> </tr> <tr> <td valign=\"top\" align=\"left\"> <table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"> <tbody> <tr> <td valign=\"top\" height=\"17\" align=\"left\" style=\"font-size: 0%;\"><img width=\"1\" height=\"17\" border=\"0\" style=\"display: block;\" title=\"\" alt=\"\" src=\"http://example.com/lib/fe8f12717d62057f7d/m/1/img_spacer.gif\" /></td> </tr> <tr> <td valign=\"top\" align=\"left\" style=\"font-family: Arial,Helvetica,sans-serif; font-size: 11px; color: #656c73; line-height: 18px;\">You are subscribed as <a reportname=\"mailto:_EMAIL__\" style=\"text-decoration: none; color: #505050;\" href=\"example@example.com\"><span class=\"link3\" style=\"text-decoration: none;\">example@example.com</span></a></td> </tr> <tr> <td valign=\"top\" height=\"25\" align=\"left\" style=\"font-size: 0%;\"><img width=\"1\" height=\"25\" border=\"0\" style=\"display: block;\" title=\"\" alt=\"\" src=\"http://example.com\" /></td> </tr> <tr> <td valign=\"top\" align=\"left\" style=\"font-family: Arial,Helvetica,sans-serif; font-size: 11px; color: #656c73; line-height: 18px;\">View and manage your <span class=\"applefooterlinks\">example.com </span><a style=\"text-decoration: underline; color: #656c73;\" target=\"_blank\" href=\"http://example.com/\"><span class=\"link3\" style=\"color: #656c73; text-decoration: underline;\">newsletter preferences</span></a>.<br /> If you wish to unsubscribe you must uncheck the box next to the relevant title.</td> </tr> <tr> <td valign=\"top\" height=\"25\" align=\"left\" style=\"font-size: 0%;\"><img width=\"1\" height=\"25\" border=\"0\" style=\"display: block;\" title=\"\" alt=\"\" src=\"http://example.com\" /></td> </tr> <tr> <td valign=\"top\" align=\"left\" style=\"font-family: Arial,Helvetica,sans-serif; font-size: 11px; color: #656c73; line-height: 18px;\"><a style=\"text-decoration: underline; color: #656c73;\" target=\"_blank\" href=\"http://example.com/?qs=85ea4dcfb406c17e184090f0720216d008d21d0363ca86741a296ce98649846e5262048f59eea25e\"><span class=\"link3\" style=\"color: #656c73; text-decoration: underline;\">TEST</span></a>";
// 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/