import re
regex = re.compile(r"(?=^(?:\+|00)?(?:[\-\/\(\)]?\d){11}$)(?:00|\+)[^\d]*([\d])[^\d]*([\d])[^\d]*([\d])[^\d]*([\d])[^\d]*([\d])[^\d]*([\d])[^\d]*([\d])[^\d]*([\d])[^\d]*([\d])[^\d]*([\d])[^\d]*([\d])$", flags=re.MULTILINE)
test_str = ("+48301234567\n"
"+4-8-3-0-1-2-3-4-5-6-7\n"
"+48/30/1234567\n"
"+48-30-12-345-67\n"
"+483011223344556677\n"
"0048301234567\n"
"+(48)30/1234567")
subst = "+(\\1\\2) \\3\\4/\\5\\6-\\7\\8\\9-\\10\\11"
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