// 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"(?i)(?=\S*\b(?:ua|dev|qa)\b)(?:https?:\/\/(?:www\.|(?!www))[^\s.]+\.\S{2,}|www\.\S+\.\S{2,})").unwrap();
let string = "www.demo.com
http://foo.co.uk/
http://regexr.com/foo.html?q=bar
https://mediatemple.net
Sample text for testing:
abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
http://regexrqa.com/foo.html?q=bar
https://qa.mediatemple.net
0123456789 _+-.,!@#$%^&*();\\/|<>\"'
12345 -98.7 3.141 .6180 9,000 +42
http://regexrua.com/foo.html?q=bar
https://ua.mediatemple.net
555.123.4567 +1-(800)-555-2468
foo@demo.net bar.ba@test.co.uk
http://regexrdev.com/foo.html?q=bar
https://dev.mediatemple.net";
// 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/