# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"(?:\"|\G(?<!\")(?!\A))(?<r>[^a\"\\]*+(?>\\.[^a\"\\]*)*+)\K(a|\"(*SKIP)(*F))(?(?=((?&r)\"))\3)"
test_str = ("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.")
subst = "***\\3"
# You can manually specify the number of replacements by changing the 4th argument
result = re.sub(regex, subst, test_str, 0)
if result:
print (result)
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
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 Python, please visit: https://docs.python.org/3/library/re.html