// 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)((?:[\w'-]+,\s+)+(?:[\w'-]+\s){0,2}[\w'-]+)(\s+(and|or)\s+[\w'-]+)").unwrap();
let string = "I love my parents, Bon Jovi and Lada Gaga.
We invited the strippers, Hitler and Stalin.
The problem is, you can never know if the user is making a list, or just typing a bunch of words and inserting commas.
I'm not sure whether to eat, shoot or leave!
List of words: can, can't and won't.
I will not use three-legged, blue or wooden stools.
Don't get this one or I'll be upset at you.
Put a command before this and I'll be sad.";
let substitution = "$1,$2";
// result will be a String with the substituted value
let result = regex.replace_all(string, substitution);
println!("{}", result);
}
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/