// 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#"(?s)<buffer name="[^"]*Lut[^"]*">.*?<\/buffer>"#).unwrap();
let string = "<?xml version=\"1.0\" encoding=\"utf-8\"?>
<pimp xmlns:dt=\"urn:schemas-microsoft-com:datatypes\">
<dllPath>C:\\ReplayCode\\Apps\\Pimp</dllPath>
<buffers>
<buffer name=\"InputMask\">
<width>5120</width>
<height>3072</height>
<data>UCHAR</data>
<channels>1</channels>
<type>IMG</type>
</buffer>
<buffer name=\"MaskErode\">
<width>5120</width>
<height>3072</height>
<data>UCHAR</data>
<channels>1</channels>
<type>IMG</type>
</buffer>
<buffer name=\"BlablaLutBla\">
<width>256</width>
<height>256</height>
<data>UCHAR</data>
<channels>1</channels>
<type>IMG</type>
</buffer>
<buffer name=\"MaskClose\">
<width>5120</width>
<height>3072</height>
<data>UCHAR</data>
<channels>1</channels>
<type>IMG</type>
</buffer>
<buffer name=\"2ndLutBlabla\">
<width>256</width>
<height>256</height>
<data>UCHAR</data>
<channels>1</channels>
<type>IMG</type>
</buffer>
<buffer name=\"InputVis\">
<width>5120</width>
<height>3072</height>
<data>UCHAR</data>
<channels>3</channels>
<type>IMG</type>
</buffer>
<buffer name=\"AddMaskEdge\">
<width>5120</width>
<height>3072</height>
<data>UCHAR</data>
<channels>1</channels>
<type>IMG</type>
</buffer>
<buffer name=\"EdgeVis\">
<width>5120</width>
<height>3072</height>
<data>UCHAR</data>
<channels>3</channels>
<type>IMG</type>
</buffer>
<buffer name=\"GrayEdge\">
<width>5120</width>
<height>3072</height>
<data>UCHAR</data>
<channels>1</channels>
<type>IMG</type>
</buffer>
<buffer name=\"EdgeMaskMulThreshold\">
<width>5120</width>
<height>3072</height>
<data>UCHAR</data>
<channels>1</channels>
<type>IMG</type>
</buffer>
<buffer name=\"MaskMulEdge\">
<width>5120</width>
<height>3072</height>
<data>UCHAR</data>
<channels>1</channels>
<type>IMG</type>
</buffer>
</buffers> ";
// 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/