首页 >后端开发 >C++ >如何从 C# 字符串中删除非 ASCII 字符?

如何从 C# 字符串中删除非 ASCII 字符?

Susan Sarandon
Susan Sarandon原创
2025-01-19 13:33:09254浏览

How to Remove Non-ASCII Characters from a String in C#?

从 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 范围。
  • :匹配前面字符类的一次或多次出现。

此模式精确定位并删除 ASCII 范围之外的所有字符。

正则表达式解释

正则表达式可以进一步细分:

  • [u0000-u007F] :匹配一个或多个 ASCII 字符。
  • [^...]:带有前导插入符号 (^) 的方括号创建一个否定字符类,选择 超出 指定范围的字符。
  • string.Empty:替换字符串;在本例中,为空字符串,删除匹配的字符。

这个正则表达式提供了一种干净有效的方法来过滤字符串,只留下 ASCII 字符。

以上是如何从 C# 字符串中删除非 ASCII 字符?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn