import re
regex = r"has\(\s*(\d+)\s*,\s*(\d+)\s*\)"
dict={}
test_str = ("Person1(has(1, 1) has(2, 2)\n"
" has(3, 3) \n"
" had(4, 4) had(5, 5))\n"
"Person2(had(6, 6) has(7, 7))\n"
"Person3(had(6, 6) has(8, 8))")
res=re.split(r"(Person\d+)",test_str)
currentKey="";
for rs in res:
if "Person" in rs:
currentKey=rs;
elif currentKey !="":
matches = re.finditer(regex, rs, re.DOTALL)
ar=[]
for match in matches:
ar.append(match.group(1)+","+match.group(2))
dict[currentKey]=ar;
print(dict)
aW1wb3J0IHJlCgpyZWdleCA9IHIiaGFzXChccyooXGQrKVxzKixccyooXGQrKVxzKlwpIgoKZGljdD17fQp0ZXN0X3N0ciA9ICgiUGVyc29uMShoYXMoMSwgMSkgaGFzKDIsIDIpXG4iCgkiICAgIGhhcygzLCAzKSBcbiIKCSIgICAgaGFkKDQsIDQpIGhhZCg1LCA1KSlcbiIKCSJQZXJzb24yKGhhZCg2LCA2KSBoYXMoNywgNykpXG4iCgkiUGVyc29uMyhoYWQoNiwgNikgaGFzKDgsIDgpKSIpCgkKcmVzPXJlLnNwbGl0KHIiKFBlcnNvblxkKykiLHRlc3Rfc3RyKQpjdXJyZW50S2V5PSIiOwpmb3IgcnMgaW4gcmVzOgoJaWYgIlBlcnNvbiIgaW4gcnM6CgkJY3VycmVudEtleT1yczsKCWVsaWYgY3VycmVudEtleSAhPSIiOgoJCW1hdGNoZXMgPSByZS5maW5kaXRlcihyZWdleCwgcnMsIHJlLkRPVEFMTCkKCQlhcj1bXQoJCWZvciBtYXRjaCBpbiBtYXRjaGVzOgoJCQlhci5hcHBlbmQobWF0Y2guZ3JvdXAoMSkrIiwiK21hdGNoLmdyb3VwKDIpKQoJCWRpY3RbY3VycmVudEtleV09YXI7CnByaW50KGRpY3QpCgkKCQoK
{'Person1': ['1,1', '2,2', '3,3'], 'Person2': ['7,7'], 'Person3': ['8,8']}