// 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)\d+%[^.](?:(?!original\b)[^\d\r\n])*\bpercentage\b").unwrap();
let string = "In some cases, 10% of the sales starts with the original percentage --> my regex match with this string but I don't want to because it contains the word \"original\"
The 10% of the sales starts with a certain percentage --> my regex match with this string, it's okay because it doesn't containt the word \"original\"
The 10% of the original
percentage of the sale is higher--> my regex doesn't match with this string, and it's okay because it containts the word \"original\" (maybe because the new line starts with percentage?)
The 10% of the original sale
is the percentage of that --> my regex match with this string but I don't want to because it contains the word \"original\"
10% \"whatever\" percentage
10% original percentage";
// 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/