Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C语言中从字符串中删除非ASCII字#_C# - Fatal编程技术网

C# 如何在C语言中从字符串中删除非ASCII字#

C# 如何在C语言中从字符串中删除非ASCII字#,c#,C#,我想过滤一些有错误字母(非-)的字符串。它在记事本、VisualStudio2010和MySQL中看起来不同 如何检查字符串是否包含非ASCII字母以及如何删除它们?您可以使用正则表达式 Regex.Replace(input, "[^a-zA-Z0-9]+", "") 您还可以使用\W+作为模式来删除任何非字符。您可以使用正则表达式 Regex.Replace(input, "[^a-zA-Z0-9]+", "") 您还可以使用\W+作为模式来删除任何非字符。您可以使用正则表达式来过滤非A

我想过滤一些有错误字母(非-)的字符串。它在记事本、VisualStudio2010和MySQL中看起来不同


如何检查字符串是否包含非ASCII字母以及如何删除它们?

您可以使用正则表达式

Regex.Replace(input, "[^a-zA-Z0-9]+", "")

您还可以使用
\W+
作为模式来删除任何非字符。

您可以使用正则表达式

Regex.Replace(input, "[^a-zA-Z0-9]+", "")

您还可以使用
\W+
作为模式来删除任何非字符。

您可以使用正则表达式来过滤非ASCII字符:

string input = "AB £ CD";
string result = Regex.Replace(input, "[^\x0d\x0a\x20-\x7e\t]", "");

可以使用正则表达式过滤非ASCII字符:

string input = "AB £ CD";
string result = Regex.Replace(input, "[^\x0d\x0a\x20-\x7e\t]", "");

我认为像这样简单的事情可能会奏效,不是吗

public static string AsciiOnly(this string input, bool includeExtendedAscii)
{
    int upperLimit = includeExtendedAscii ? 255 : 127;
    char[] asciiChars = input.Where(c => (int)c <= upperLimit).ToArray();
    return new string(asciiChars);
}

我认为像这样简单的事情可能会奏效,不是吗

public static string AsciiOnly(this string input, bool includeExtendedAscii)
{
    int upperLimit = includeExtendedAscii ? 255 : 127;
    char[] asciiChars = input.Where(c => (int)c <= upperLimit).ToArray();
    return new string(asciiChars);
}

首先,你需要确定你所说的“单词”是什么意思。如果非ascii,这可能意味着非英语


就我个人而言,我会问您为什么需要这样做,以及您的应用程序有哪些与数据冲突的基本假设?根据具体情况,我建议您从源代码重新编码文本,尽管这将是有损转换,或者,解决基本假设,以便应用程序正确处理数据。

首先,您需要确定“单词”的含义。如果非ascii,这可能意味着非英语


就我个人而言,我会问您为什么需要这样做,以及您的应用程序有哪些与数据冲突的基本假设?根据具体情况,我建议您重新编码源编码中的文本,尽管这将是一种有损转换,或者,解决这一基本假设,以便您的应用程序正确处理数据。

这是上帝的恩赐:

Regex.Replace(input, @"[^\u0000-\u007F]", "");
我想我最初是从别处得到的,但这里有一个链接指向相同的答案:


这是上帝的恩赐:

Regex.Replace(input, @"[^\u0000-\u007F]", "");
我想我最初是从别处得到的,但这里有一个链接指向相同的答案:

首先,什么是“扩展ascii”?其次,除非假设UTF-8编码,否则我看不出这是如何工作的?当然不是默认的UTF-16编码,因为那样的话,结果就不适合字符数组了?(字符是8位的,对吗?)首先,什么是“扩展ascii”?其次,除非假设UTF-8编码,否则我看不出这是如何工作的?当然不是默认的UTF-16编码,因为那样的话,结果就不适合字符数组了?(字符是8位的,对吗?)