import re
regex = r"^([^;]+);[\r \n ]*([^;]+);[\r \n ]*([^;]+);"
test_str = ( "New York City; Iron Man; no superpowers;\n "
"Metropolis; Superman; superpowers;\n "
"New York City;\n "
"Spider-Man;\n "
"superpowers;\n "
"Gotham; Batman; no superpowers;\n "
"New York City; Doctor Strange; superpowers;\n \n " )
subst = "\\ 1;\\ 2;\\ 3;"
# You can manually specify the number of replacements by changing the 4th argument
result = re .sub ( regex, subst, test_str, 0 , re .MULTILINE | re .DOTALL )
if result:
print ( result)
aW1wb3J0IHJlCgpyZWdleCA9IHIiXihbXjtdKyk7W1xyXG5dKihbXjtdKyk7W1xyXG5dKihbXjtdKyk7IgoKdGVzdF9zdHIgPSAoIk5ldyBZb3JrIENpdHk7IElyb24gTWFuOyBubyBzdXBlcnBvd2VycztcbiIKCSJNZXRyb3BvbGlzOyBTdXBlcm1hbjsgc3VwZXJwb3dlcnM7XG4iCgkiTmV3IFlvcmsgQ2l0eTtcbiIKCSJTcGlkZXItTWFuO1xuIgoJInN1cGVycG93ZXJzO1xuIgoJIkdvdGhhbTsgQmF0bWFuOyBubyBzdXBlcnBvd2VycztcbiIKCSJOZXcgWW9yayBDaXR5OyBEb2N0b3IgU3RyYW5nZTsgc3VwZXJwb3dlcnM7XG5cbiIpCgpzdWJzdCA9ICJcXDE7XFwyO1xcMzsiCgojIFlvdSBjYW4gbWFudWFsbHkgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIHJlcGxhY2VtZW50cyBieSBjaGFuZ2luZyB0aGUgNHRoIGFyZ3VtZW50CnJlc3VsdCA9IHJlLnN1YihyZWdleCwgc3Vic3QsIHRlc3Rfc3RyLCAwLCByZS5NVUxUSUxJTkUgfCByZS5ET1RBTEwpCgppZiByZXN1bHQ6CiAgICBwcmludCAocmVzdWx0KQ==