import re
pattern = r"([A-Z]-(?=[A-Z]))|([A-Z](?=[0-9])|[0-9](?=[A-Z]))"
strings = [
"A-BA",
"A-B-BAB",
"9AHYA7",
"977AB99T5",
"HS98743YVJUHGF78BF8HH3JHFC83438VUN5498FCNG",
"7267-VHSBVH8737HHC8C-HYHFWYFHH-7Y84743YR8437G"
]
for str in strings:
result = re.sub(
pattern,
lambda x: x.group(1)[:-1] if x.group(1) else x.group(2) + "-",
str
)
print(result)
aW1wb3J0IHJlCgpwYXR0ZXJuID0gciIoW0EtWl0tKD89W0EtWl0pKXwoW0EtWl0oPz1bMC05XSl8WzAtOV0oPz1bQS1aXSkpIgpzdHJpbmdzID0gWwogICAgIkEtQkEiLAogICAgIkEtQi1CQUIiLAogICAgIjlBSFlBNyIsCiAgICAiOTc3QUI5OVQ1IiwKICAgICJIUzk4NzQzWVZKVUhHRjc4QkY4SEgzSkhGQzgzNDM4VlVONTQ5OEZDTkciLAogICAgIjcyNjctVkhTQlZIODczN0hIQzhDLUhZSEZXWUZISC03WTg0NzQzWVI4NDM3RyIKXQoKZm9yIHN0ciBpbiBzdHJpbmdzOgogICAgcmVzdWx0ID0gcmUuc3ViKAogICAgICAgIHBhdHRlcm4sCiAgICAgICAgbGFtYmRhIHg6IHguZ3JvdXAoMSlbOi0xXSBpZiB4Lmdyb3VwKDEpIGVsc2UgeC5ncm91cCgyKSArICItIiwKICAgICAgICBzdHIKICAgICkKICAgIHByaW50KHJlc3VsdCk=