// 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#"(?:"|\G(?<!")(?!\A))(?<r>[^a"\\]*+(?>\\.[^a"\\]*)*+)\K(a|"(*SKIP)(*F))(?(?=((?&r)"))\3)"#).unwrap();
let string = "Problem: I have thousands of documents which contains a specific character I don't want. E.g. \"the character a\". These documents contain a variety of characters, but the a's I want to replace \"are inside double quotes or\" single quotes.
I would \"like to find and replace them\", and I thought using Regex would be needed. I am using VSCode, but I'm open to any suggestions.
My attempt: I was able to find the following regex to match for a specific string containing the \"values inside the\" ().
\".*?(r).*?\"
However, this only highlights the entire quote. I want to highlight the character only.
Any solution, \"perhaps outside of regex\", is welcome.";
let substitution = "***\\3";
// 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/