# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"(?:(?:^|\G(?<!^)[^'\"]*\")[^\"]*+(?:\"[^\"']*\"[^\"]*)*+\"|\G(?<!^))[^'\"]*+(')"
test_str = ("\" This is a random sentence ' with 'a quote, the quote should match\"\n"
"\" There is no quote here thats the problem\" Anything here should not match but now it does: ' .\n"
"\" Some text \" some more text \" this is a quote : ' that should match\"\n"
"\" When there is a quote (') here, the other one does not work : \" ' and that's perfect \" even if you remove the first one this : \" (') \" will make it work because of the greedy ( I think ) but ifyou remove those between parenthesis, the other one is matching as of now, which I do not want to happen.\"\n"
"Another example would be this one : The following should not work, but it does \"This is being quoted\" not this: (') \" and this is also being quoted \"\n"
"\"'\"\n")
matches = re.finditer(regex, test_str)
for matchNum, match in enumerate(matches, start=1):
print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))
for groupNum in range(0, len(match.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum)))
# 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