从 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中文网其他相关文章!