// 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)(<Name>)(.*)(<\/Name>)[\n\r]*(<Telephone>)(.*)(<\/Telephone>)").unwrap();
let string = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<xxxIPPhoneDirectory clearlight=\"true\">
<Title>Main Directory</Title>
<Prompt>Prompt</Prompt>
<DirectoryEntry>
<Name>Aaron Parks</Name>
<Telephone>7404053585</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Andrea Vogelmeier</Name>
<Telephone>7403343757</Telephone>
<Telephone>7407451052</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Cyndi Corder</Name>
<Telephone>7404041408</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Dakotah Scisciani</Name>
<Telephone>7405029443</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Debbie Kallis</Name>
<Telephone>7403349616</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Denise Keefe</Name>
<Telephone>7402434260</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Diana Petro</Name>
<Telephone>7409734464</Telephone>
<Telephone>7403666385</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Ed Hutchison</Name>
<Telephone>7403648351</Telephone>
<Telephone>7405877205</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Eric Hall</Name>
<Telephone>7406444816</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Frank Frye</Name>
<Telephone>7403285924</Telephone>
<Telephone>7403661298</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Gail Shulko</Name>
<Telephone>7407043147</Telephone>
<Telephone>7407871784</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Gretchen Rigsby</Name>
<Telephone>74033640293</Telephone>
<Telephone>7403234308</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Jesse Ours</Name>
<Telephone>7404045337</Telephone>
<Telephone>7409288801</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Jodie Greene</Name>
<Telephone>7409734281</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Kim Thomson</Name>
<Telephone>7405221142</Telephone>
<Telephone>7403443054</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Kyle Hall</Name>
<Telephone>7405045837</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Linda McKee</Name>
<Telephone>7409730214</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Mitch Fellows</Name>
<Telephone>7404039044</Telephone>
<Telephone>7402464724</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Phil Frye</Name>
<Telephone>7404037128</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Ric Lahmers</Name>
<Telephone>7409734462</Telephone>
<Telephone>7407632952</Telephone>
<Telephone>7407632143</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Sharon Holman</Name>
<Telephone>7403348205</Telephone>
<Telephone>7403456949</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Terry Wilson</Name>
<Telephone>7402587296</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Vanessa Beneze</Name>
<Telephone>7404032856</Telephone>
</DirectoryEntry>
<SoftKeyItem>
<URL>http://xxx/minibrowser/start.xml</URL>
</SoftKeyItem>
<SoftKeyItem>
<URL>http://xxx/minibrowser/menu.xml</URL>
</SoftKeyItem>
</xxxIPPhoneDirectory>
";
// 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/