// 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#"(?i)\s*((\w+)=(['\"])(.*?)\3)\1*"#).unwrap();
let string = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<root-topic docid=\"10001048\" docstatus=\"Draft\"
id=\"LegalConsiderations-17D8778D\"><title>Legal Considerations</title>
<shortdesc>Legal Considerations</shortdesc>
<p product_type=\"accessories;chassis;enclosure;power supply\">Video
and audio surveillance can be regulated by laws that vary from country
to country. Check the laws in your local region before using this
product for surveillance purposes.</p>
<p product_type=\"audio device\">Audio surveillance can be regulated
by laws that vary from country to country. Check the laws in your
local region before using this product for surveillance purposes.</p>
<p network_video_products=\"audio\"
product_type=\"network camera;video encoder;thermal camera;AVHS;ACM;ACS;application;O3C\"
>Video and audio surveillance can be regulated by laws that vary from
country to country. Check the laws in your local region before using
this product for surveillance purposes.</p>
<p network_video_products=\"no audio\"
product_type=\"network camera;video encoder;thermal camera\">Video surveillance
can be regulated by laws that vary from country to country. Check
the laws in your local region before using this product for surveillance
purposes.</p>
<p network_video_products=\"audio\"
product_type=\"network camera;video encoder;thermal camera\">This product
includes one (1) H.264 decoder license and one (1) AAC decoder license.
To purchase further licenses, contact your reseller.</p>
<p network_video_products=\"no audio\"
product_type=\"network camera;video encoder;thermal camera\">This product
includes one (1) H.264 decoder license. To purchase further licenses,
contact your reseller.</p>
<p product_type=\"thermal camera\">This product is subject to export
control regulations. You should always consult and comply with the
regulations of the appropriate local export control authorities.</p>
</root-topic>
";
// result will be an iterator over tuples containing the start and end indices for each match in the string
let result = regex.captures_iter(string);
for mat in result {
println!("{:?}", mat);
}
}
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/