C# 文字列から非 ASCII 文字を効率的に削除する
データの処理と検証では、文字列から非 ASCII 文字を削除することが頻繁に必要になります。 この記事では、正規表現を使用してこのタスクを実行する簡潔な C# メソッドを示します。
正規表現ソリューション
次のコード スニペットでは、正規表現を使用して非 ASCII 文字をすべて削除します。
<code class="language-csharp">string s = "søme string"; s = Regex.Replace(s, @"[^\u0000-\u007F]+", string.Empty);</code>
Regex.Replace
は、出現するすべてのパターンを空の文字列に置き換え、非 ASCII 文字を効果的に削除します。 パターンを分析してみましょう:
^
: 一致を反転する否定演算子。u####-u####
: Unicode コードポイントの範囲を指定します。 u0000-u007F
は ASCII 範囲を定義します。
: 先行する文字クラスの 1 つ以上の出現と一致します。このパターンは、ASCII 範囲外のすべての文字を正確にターゲットにして削除します。
正規表現の説明
正規表現はさらに細分化できます:
[u0000-u007F]
: 1 つ以上の ASCII 文字と一致します。[^...]
: 先頭にキャレットが付いた角括弧 (^
) は、指定された範囲の外側の文字を選択する否定文字クラスを作成します。string.Empty
: 置換文字列。この場合は、一致した文字を削除する空の文字列です。この正規表現は、ASCII 文字だけを残して文字列をフィルタリングするクリーンかつ効率的な方法を提供します。
以上がC# で文字列から非 ASCII 文字を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。