// 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)(?<=participant id=").*?(?=\")"#).unwrap();
let string = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<recording xmlns=\"urn:ietf:params:xml:ns:recording\" xmlns:ac=http://aaa>
<datamode>complete</datamode>
<group id=\"00000000-0000-0084-2bb2-880019360e65\">
<associate-time>2024-01-30T13:10:49</associate-time>
</group>
<session id=\"0000-0000-0000-0000-bc3f13048a90ea74\">
<group-ref>00000000-0000-0084-2bb2-880019360e65</group-ref>
<associate-time>2024-01-30T13:10:49</associate-time>
</session>
<participant id=\"+11111111111\" session=\"0000-0000-0000-0000-bc3f13048a90ea74\">
<nameID aor=+11111111111@x.x.x.x></nameID>
<associate-time>2024-01-30T13:10:49</associate-time>
<send>00000000-2f30-0084-2bb2-880019360e65</send>
<recv>00000001-42a6-0084-2bb2-880019360e65</recv>
</participant>
<participant id=\"+22222222222\" session=\"0000-0000-0000-0000-bc3f13048a90ea74\">
<nameID aor=+22222222222@y.y.y.y></nameID>
<associate-time>2024-01-30T13:10:49</associate-time>
<send>00000001-42a6-0084-2bb2-880019360e65</send>
<recv>00000000-2f30-0084-2bb2-880019360e65</recv>
</participant>
<stream id=\"00000000-2f30-0084-2bb2-880019360e65\" session=\"0000-0000-0000-0000-bc3f13048a90ea74\">
<label>1</label>
</stream>
<stream id=\"00000001-42a6-0084-2bb2-880019360e65\" session=\"0000-0000-0000-0000-bc3f13048a90ea74\">
<label>2</label>
</stream>
</recording>";
// 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/