// 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)\b\w[-.\w]+\.(com|org|net)\b").unwrap();
let string = "Test strings
hello.com hello1.com 1hello.com hello-1.com hello-hi1.com 1hello-hi.com h3ll0.com
also matches
hello_1.com
---.com
1234.org
-.net
a.net
abc.comical
www.company.com
this is a sentance about net-working.networking is bla bla bla
will not match other domains
hello.co.uk
hello.co
subdomain.hello.com
correctly grabs the domain for
abc.com&foobar
abc.com/foobar
abc.com?foobar";
// 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/