import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?:\"|\\G(?<!\")(?!\\A))(?<r>[^a\"\\\\]*+(?>\\\\.[^a\"\\\\]*)*+)\\K(a|\"(*SKIP)(*F))(?(?=((?&r)\"))\\3)";
final String 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.\n\n"
+ "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.\n\n"
+ "My attempt: I was able to find the following regex to match for a specific string containing the \"values inside the\" ().\n\n"
+ "\".*?(r).*?\"\n"
+ "However, this only highlights the entire quote. I want to highlight the character only.\n\n"
+ "Any solution, \"perhaps outside of regex\", is welcome.";
final String subst = "***\\3";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
// The substituted value will be contained in the result variable
final String result = matcher.replaceAll(subst);
System.out.println("Substitution result: " + 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 Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html