// 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#"(?m)\s*<div\sid=\"feature-bullets[\s\S]*?(<li>\s*[\s\S]*?[\s]+<\/ul>)"#).unwrap();
let string = "<div id=\"feature-bullets\" class=\"a-section a-spacing-medium a-spacing-top-small\">
<ul class=\"a-unordered-list a-vertical a-spacing-none\">
<div id=\"hsx-rpp-bullet-fits-message\" class=\"aok-hidden\">
<div class=\"a-box a-alert-inline a-alert-inline-success hsx-rpp-fitment-bullets\"><div class=\"a-box-inner a-alert-container\"><i class=\"a-icon a-icon-alert\"></i><div class=\"a-alert-content\">
This fits your <span class=\"hsx-rpp-bullet-model-info\"></span>.
</div></div></div>
</div>
<li id=\"replacementPartsFitmentBullet\" data-doesntfitmessage=\"We're not sure this item fits your \" data-fitsmessage=\"This fits your \" class=\"aok-hidden\"><span class=\"a-list-item\">
<span id=\"replacementPartsFitmentBulletInner\"> <a class=\"a-link-normal hsx-rpp-fitment-focus\" href=\"#\">Make sure this fits</a>
<span>by entering your model number.</span>
</span>
</span></li>
<script type=\"text/javascript\">
P.when(\"ReplacementPartsBulletLoader\").execute(function(module){ module.initializeDPX(); })
</script>
<li><span class=\"a-list-item\">
Precision ground up-cut spiral design
</span></li>
<li><span class=\"a-list-item\">
M2 high speed steel runs cooler, lasts longer
</span></li>
<li><span class=\"a-list-item\">
Includes sizes 1/4\" x 3\", 1/2\" x 3-1/4\" and 3/8\" x 3\"
</span></li>
<li><span class=\"a-list-item\">
1/4\" shank;
</span></li>
</ul>
<!-- Loading EDP related metadata -->
<span class=\"edp-feature-declaration\" data-edp-feature-name=\"featurebullets\" data-edp-asin=\"B006ZBADNW\" data-data-hash=\"2400652208\" data-defects=\"[{"id":"defect-mismatch-info","value":"Different from product"},{"id":"defect-missing-information","value":"Missing information"},{"id":"defect-unessential-info","value":"Unimportant information"},{"id":"defect-other-productinfo-issue","value":"Other"}]\" data-metadata=\"CATALOG\" data-feature-container-id=\"\" data-custom-event-handler=\"\" data-display-name=\"Bullet Points\" data-edit-data-state=\"featureBulletsEDPEditData\" data-position=\"\" data-resolver=\"CQResolver\"></span>
<span class=\"caretnext\">›</span>
<a id=\"seeMoreDetailsLink\" class=\"a-link-normal\" href=\"#productDetails\">See more product details</a>
</div>";
// 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/