用于替换à,Á,Ä等的正则表达式 - > a,Õ,ò等 - > Ø

时间:2011-08-29 19:48:29

标签: .net regex unicode

西方拉丁字符集包含诸如的字符 ÀÁÃÅÅ与'radix'具有相同的标准char'a'。这发生在e,i,o等。同样。 是否有正则表达式将这些变体替换为“基数”字符?

这将用于从文本创建一个seo友好的URL(但不限于):

示例:Lacenaèpronta => La cena e pronta

1 个答案:

答案 0 :(得分:2)

试试这个:

string str = "La cena è pronta àèéìòùçæÀÈÉÌÒÙÇÆ";
str = str.Normalize(NormalizationForm.FormD); // Or use NormalizationForm.FormKD
str = Regex.Replace(str, @"\p{Mn}", "");
// Result: La cena e pronta aeeioucæAEEIOUCÆ

但请注意Æ仍为Æ