// 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#"(?msU)<emphasis>(.*) Code<\/emphasis>\s*<\/para>\s*<program ?(language="(.*)")?>\s*(.*)<\/program>"#).unwrap();
let string = " <section id=\"foo\">
<title>Code about Bears</title>
<para>Words</para>
<para><emphasis>Python Code</emphasis></para>
<program language=\"py\">import bears</program>
<para><emphasis>JavaScript Code</emphasis></para>
<program language=\"js\">var bear = require('bears');</program>
<section id=\"bar\">
<title>Code about Bear Cubs</title>
<para>Words</para>
<para><emphasis>Python Code</emphasis></para>
<program language=\"py\">import cubs</program>
<para><emphasis>JavaScript Code</emphasis></para>
<program language=\"js\">var cub = require('cubs');</program>
</section>
</section>";
// 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/