import re
my_dict = {"X":"xxx", "Y":"yyy"}
my_str = "A[xxx]BC[yyy]"
def get_key_by_value(dictionary, value):
for key, val in dictionary.items():
if val == value:
return key
return value # If no key has been found
rx = re.compile(r'\[([^][]*)]')
result_1 = rx.sub('', my_str)
result_2_arr = []
m = rx.search(my_str)
tmp = my_str
while m:
result_2_arr.append("{}|{}".format(m.start(), get_key_by_value(my_dict, m.group(1))))
tmp = "".join([tmp[:m.start()], tmp[m.end():]])
m = rx.search(tmp)
print ( result_1 )
print ( "|".join(result_2_arr) )
aW1wb3J0IHJlCm15X2RpY3QgPSB7IlgiOiJ4eHgiLCAiWSI6Inl5eSJ9Cm15X3N0ciA9ICJBW3h4eF1CQ1t5eXldIgoKZGVmIGdldF9rZXlfYnlfdmFsdWUoZGljdGlvbmFyeSwgdmFsdWUpOgogICAgZm9yIGtleSwgdmFsIGluIGRpY3Rpb25hcnkuaXRlbXMoKToKICAgICAgICBpZiB2YWwgPT0gdmFsdWU6CiAgICAgICAgICAgIHJldHVybiBrZXkKICAgIHJldHVybiB2YWx1ZSAgIyBJZiBubyBrZXkgaGFzIGJlZW4gZm91bmQKICAgICAgICAKcnggPSByZS5jb21waWxlKHInXFsoW15dW10qKV0nKQpyZXN1bHRfMSA9IHJ4LnN1YignJywgbXlfc3RyKQpyZXN1bHRfMl9hcnIgPSBbXQptID0gcnguc2VhcmNoKG15X3N0cikKdG1wID0gbXlfc3RyCndoaWxlIG06CglyZXN1bHRfMl9hcnIuYXBwZW5kKCJ7fXx7fSIuZm9ybWF0KG0uc3RhcnQoKSwgZ2V0X2tleV9ieV92YWx1ZShteV9kaWN0LCBtLmdyb3VwKDEpKSkpCgl0bXAgPSAiIi5qb2luKFt0bXBbOm0uc3RhcnQoKV0sIHRtcFttLmVuZCgpOl1dKQoJbSA9IHJ4LnNlYXJjaCh0bXApCgkKcHJpbnQgKCByZXN1bHRfMSApCnByaW50ICggInwiLmpvaW4ocmVzdWx0XzJfYXJyKSAp