Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@matthewmorrone
Last active January 9, 2020 18:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save matthewmorrone/ea02b31c35d90c00cce45712e411065d to your computer and use it in GitHub Desktop.
Save matthewmorrone/ea02b31c35d90c00cce45712e411065d to your computer and use it in GitHub Desktop.
public String normalize(String text) {
return text.replaceAll("[ÀÁÂÃÄÅĀĂĄḀẠẢẤẦẨẪẬẮẰẲẴẶǍǺȦȀȂǞǠǢǼ]", "A")
.replaceAll("[àáâãäåāăąḁạảấầẩẫậắằẳẵặẚǎǻȧȁȃǟǡǣǽ]", "a")
.replaceAll("[ḂḄḆ]", "B")
.replaceAll("[ḃḅḇ]", "b")
.replaceAll("[ḉćĉċč]", "c")
.replaceAll("[ḈĆĈĊČ]", "C")
.replaceAll("[ḋḍḏḑḓď]", "d")
.replaceAll("[ḊḌḎḐḒĎ]", "D")
.replaceAll("[ȆĒĔĖĘĚÈÉÊËḔḖḘḚḜẸẺẼẾỀỂỄỆȨȄ]", "E")
.replaceAll("[ȇēĕėęěèéêëḕḗḙḛḝẹẻẽếềểễệȩȅ]", "e")
.replaceAll("[Ḟ]", "F")
.replaceAll("[ḟ]", "f")
.replaceAll("[ḠǴǦĜĞĠĢ]", "G")
.replaceAll("[ḡǵǧĝğġģ]", "g")
.replaceAll("[ḢḤḦḨḪĤȞ]", "H")
.replaceAll("[ḣḥḧḩḫẖĥȟ]", "h")
.replaceAll("[İÌÍÎÏḬḮỈỊǏȈȊĨĪĬĮ]", "I")
.replaceAll("[ıìíîïḭḯỉịǐȉȋĩīĭį]", "i")
.replaceAll("[Ĵ]", "J")
.replaceAll("[ǰĵ]", "j")
.replaceAll("[ḰḲḴǨĶ]", "K")
.replaceAll("[ḱḳḵǩķ]", "k")
.replaceAll("[ḶḸḺḼĹĻĽĿŁ]", "L")
.replaceAll("[ḷḹḻḽĺļľŀł]", "l")
.replaceAll("[ḿṁṃ]", "m")
.replaceAll("[ḾṀṂ]", "M")
.replaceAll("[ṄṆṈṊÑǸŃŅŇ]", "N")
.replaceAll("[ṅṇṉṋñǹńņňʼn]", "n")
.replaceAll("[ÒÓÔÕÖṌṎṐṒỌỎỐỒỔỖỘỚỜỞỠỢǑǪǬȌȎŌŎŐȪȬȮȰǾ]", "O")
.replaceAll("[òóôõöṍṏṑṓọỏốồổỗộớờởỡợǒǫǭȍȏōŏőȫȭȯȱǿ]", "o")
.replaceAll("[ṕṗ]", "p")
.replaceAll("[ṔṖ]", "P")
.replaceAll("[ṙṛṝṟȑȓŕŗř]", "r")
.replaceAll("[ṘṚṜṞȐȒŔŖŘ]", "R")
.replaceAll("[ṡṣṥṧṩșśŝşš]", "s")
.replaceAll("[ṠṢṤṦṨȘŚŜŞŠ]", "S")
.replaceAll("[ṪṬṮṰȚŢŤ]", "T")
.replaceAll("[ṫṭṯṱẗțţť]", "t")
.replaceAll("[ùúûüũūŭůűṳṵṷṹṻụủứừửữựȕȗǔǖǘǚǜų]", "u")
.replaceAll("[ÙÚÛÜŨŪŬŮŰṲṴṶṸṺỤỦỨỪỬỮỰȔȖǓǕǗǙǛŲ]", "U")
.replaceAll("[ṼṾ]", "V")
.replaceAll("[ṽṿ]", "v")
.replaceAll("[ẀẂẄẆẈŴ]", "W")
.replaceAll("[ẁẃẅẇẉẘŵ]", "w")
.replaceAll("[ẋẍ]", "x")
.replaceAll("[ẊẌ]", "X")
.replaceAll("[ẎỲỴỶỸÝȲŶŸ]", "Y")
.replaceAll("[ẏỳỵỷỹẙýȳŷÿ]", "y")
.replaceAll("[ẑẓẕźżžǯ]", "z")
.replaceAll("[ẐẒẔŹŻŽǮ]", "Z")
.replaceAll("[ΆἈἉἊἋἌἍἎἏᾈᾉᾊᾋᾌᾍᾎᾏᾸᾹᾺΆᾼ]", "Α")
.replaceAll("[άἀἁἂἃἄἅἆἇὰάᾀᾁᾂᾃᾄᾅᾆᾇᾰᾱᾲᾳᾴᾶᾷ]", "α")
.replaceAll("[ΈἘἙἚἛἜἝῈΈ]", "Ε")
.replaceAll("[έἐἑἒἓἔἕὲέ]", "ε")
.replaceAll("[ΉἨἩἪἫἬἭἮἯᾘᾙᾚᾛᾜᾝᾞᾟῊΉῌ]", "Η")
.replaceAll("[ήἠἡἢἣἤἥἦἧὴήᾐᾑᾒᾓᾔᾕᾖᾗῂῃῄῆῇ]", "η")
.replaceAll("[ΪΊἸἹἺἻἼἽἾἿῘῙῚΊ]", "Ι")
.replaceAll("[ίϊΐἰἱἲἳἴἵἶἷὶίῐῑῒΐῖῗ]", "ι")
.replaceAll("[ΌὈὉὊὋὌὍ]", "Ο")
.replaceAll("[όὀὁὂὃὄὅὸό]", "ο")
.replaceAll("[Ῥ]", "Ρ")
.replaceAll("[ῤῥ]", "ρ")
.replaceAll("[ΫΎὙὛὝὟῨῩῪΎϒϓϔ]", "Υ")
.replaceAll("[ΰϋύὐὑὒὓὔὕὖὗὺύῠῡῢΰῦῧ]", "υ")
.replaceAll("[ΏὨὩὪὫὬὭὮὯᾨᾩᾪᾫᾬᾭᾮᾯῸΌῺΏῼ]", "Ω")
.replaceAll("[ώὠὡὢὣὤὥὦὧὼώᾠᾡᾢᾣᾤᾥᾦᾧῲῳῴῶῷ]", "ω")
.replaceAll("[ӐӒ]", "А")
.replaceAll("[Ӛ]", "Ә")
.replaceAll("[ЃҐҒӺҔӶ]", "Г")
.replaceAll("[ЀӖЁ]", "Е")
.replaceAll("[ӁӜҖ]", "Ж")
.replaceAll("[Ӟ]", "З")
.replaceAll("[ЍӤӢҊЙ]", "И")
.replaceAll("[Ї]", "І")
.replaceAll("[ЌҚҠҞҜ]", "К")
.replaceAll("[ӉҢӇҤЊ]", "Н")
.replaceAll("[Ӧ]", "О")
.replaceAll("[Ӫ]", "Ө")
.replaceAll("[Ҧ]", "П")
.replaceAll("[Ҏ]", "Р")
.replaceAll("[Ҫ]", "С")
.replaceAll("[Ҭ]", "Т")
.replaceAll("[ЎӰӲӮ]", "У")
.replaceAll("[Ұ]", "Ү")
.replaceAll("[ӼӾҲ]", "Х")
.replaceAll("[ѾѼ]", "Ѡ")
.replaceAll("[Ҵ]", "Ц")
.replaceAll("[ӴҶӋҸ]", "Ч")
.replaceAll("[Ҿ]", "Ҽ")
.replaceAll("[Ӹ]", "Ы")
.replaceAll("[ҌѢ]", "Ь")
.replaceAll("[Ӭ]", "Э")
.replaceAll("[Ѷ]", "Ѵ");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment