我想编写一个F#或C#函数,从字符串中删除西班牙语重音:
in: "a stríng withóut áccents"
->
out: "a string without accents"
我知道如何在Python 3中实现这一点:
trans_table = str.maketrans( "áéíóúñÁÉÍÓÚÑàèìòùäëïöü", "aeiounAEIOUNaeiouaeiuo" )
# trans_table now contains a dictionary: { "á" : "a", "é" : "e", ... }
"A stríng withóut áccents".translate( trans_table )
# result is: A string without accents
如果将要翻译的字符转换为常规的ascii字符(在0-127范围内),则模仿此解决方案会相当直接。但是,由于.NET编码字符串的方式,对于超出此范围的实际unicode字符,它似乎没有直接做到...
我想要一个解决方案并不意味着对许多重音字符中的每一个进行正则表达式替换,但希望只在字符串上循环一次......
有什么想法吗?