Skip to content

Instantly share code, notes, and snippets.

@KatsumiKougen
Last active January 21, 2023 10:10
Show Gist options
  • Save KatsumiKougen/409758d736c0e6ecea44b75e4de7c20b to your computer and use it in GitHub Desktop.
Save KatsumiKougen/409758d736c0e6ecea44b75e4de7c20b to your computer and use it in GitHub Desktop.
import re
def IMString(string: str) -> str:
out = string
def DiacriticChar(charpair: str) -> str:
match charpair.group()[1]:
case "q":
match charpair.group()[0]:
case "a":
return "â"
case "A":
return "Â"
case "o":
return "ô"
case "O":
return "Ô"
case "u":
return "û"
case "U":
return "Û"
case "\\":
return "q"
case "x":
match charpair.group()[0]:
case "c":
return "ć"
case "C":
return "Ć"
case "d":
return "đ"
case "D":
return "Đ"
case "o":
return "ö"
case "O":
return "Ö"
case "s":
return "ś"
case "S":
return "Ś"
case "u":
return "ü"
case "U":
return "Ü"
case "\\":
return "x"
case "Q":
match charpair.group()[0]:
case "A":
return "Â"
case "O":
return "Ô"
case "U":
return "Û"
case "\\":
return "Q"
case "X":
match charpair.group()[0]:
case "C":
return "Ć"
case "D":
return "Đ"
case "O":
return "Ö"
case "S":
return "Ś"
case "U":
return "Ü"
case "\\":
return "X"
case "n":
if charpair.group()[0] == "\\":
return "\n"
case "b":
if charpair.group()[0] == "\\":
return "\\"
out = re.sub("[AOUaou\\\\][Qq]|[CDOUScdous\\\\][Xx]", DiacriticChar, string)
return out
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment