ホームページ >バックエンド開発 >C++ >C# の文字列から非 ASCII 文字を削除するにはどうすればよいですか?

C# の文字列から非 ASCII 文字を削除するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-19 13:11:11167ブラウズ

How Can I Remove Non-ASCII Characters from Strings in C#?

C# 文字列内の非 ASCII 文字を効率的に削除する

非 ASCII 文字を含む文字列を処理するには、多くの場合、互換性やデータ処理のためにそれらの文字を削除する必要があります。この記事では、正規表現を使用した簡潔な C# ソリューションを示します。

解決策: Regex.Replace() の活用

Regex.Replace() メソッドは、非 ASCII 文字を削除する効果的な方法を提供します。

<code class="language-csharp">string s = "søme string";
s = Regex.Replace(s, @"[^\u0000-\u007F]+", string.Empty);</code>

詳しい説明

  • Regex.Replace() は、正規表現パターンと置換文字列を受け取ります。
  • パターン @"[^u0000-u007F] " は、ASCII 範囲 (u0000 ~ u007F) の外にある任意の文字シーケンスをターゲットとしています。
  • string.Empty は、一致した文字を何も置き換えず、事実上削除します。
  • ^ (キャレット) は文字範囲を無効にし、非 ASCII 文字のみが一致するようにします。
  • u####-u#### は Unicode 文字範囲を示します。 ここでは、Unicode 0 ~ 127 (ASCII セット) の文字を指定します。

アプローチを理解する

Gordon Tucker が指摘したように、この正規表現は、指定された ASCII 範囲内にないすべての文字と効率的に一致します。 この直接的なアプローチは正確であり、不必要な複雑さを回避します。

結論

この Regex.Replace() メソッドは、C# 文字列から非 ASCII 文字を削除するクリーンで効率的な方法を提供し、さまざまなシステム間でのデータの整合性と互換性を確保します。

---
  1. u0000-u007F

以上がC# の文字列から非 ASCII 文字を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。