import re
regex = re.compile(r"([(][{}a-zA-Z0-9,()]+,[{}a-zA-Z0-9,]+),", flags=re.MULTILINE)
test_str = ("Should work for:\n"
"(1,2,3)\n"
"(1,2,3,4)\n"
"((1,2),3,4)\n"
"({x},{y},{z})\n"
"(1,(2,3),4)\n\n"
"Should not work for:\n"
"(1,2)\n"
"(10,10)\n"
"(1,10)\n"
"((1,2),3)\n"
"(((1,1),1),1)\n"
"({0},1)\n"
"({{x},{x,y}},z)")
subst = "(\\g<1>),"
result = regex.sub(subst, test_str)
if result:
print(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 Python, please visit: https://docs.python.org/3/library/re.html