2017-11-25 18 views
4

を文字列でのアクセントを削除します。私は、「N」の私は次のコード例持つ「N」以外

I followed this example を削除せずにテキストを正規化する必要がある。しかし、それは、Javaのためだとそれが持っている

var inputString = "ñaáme"; 
inputString = inputString.Replace('ñ', '\u00F1'); 
var normalizedString = inputString.Normalize(NormalizationForm.FormD); 
var result = Regex.Replace(normalizedString, @"[^ñÑa-zA-Z0-9\s]*", string.Empty); 
return result.Replace('\u00F1', 'ñ'); // naame :(

私はあなたの結果を "ñaame"にしたいと思います。

答えて

5

ñ以外のUnicode文字と、正規表現を必要としないASCII文字(正規表現は(?i)[\p{L}-[ña-z]]+)を一致させ、正規化することができます。次に、文字列から結合マークを削除します。

使用

​​

C# demo

パターン記述

  • (?i)を参照してください -
  • [無視する場合修飾子 - 文字クラスの開始を
    • \p{L} - 任意のUnicode文字
    • -[ -
      • ña-z以外 - ñとASCII文字
    • ] - 減算クラスの端
  • ]+から1又はより多くの出現。
+0

あなたの答えは非常に良いです。私は彼のコードを働いた。 ありがとうございます。 – HenryGuillen17

+0

確かに、私はそのような方法で決して来なかったでしょう、そして私はいくつかの正規表現を見ました。 もう一度、ありがとうございます。 – HenryGuillen17

関連する問題