C# 如何在C语言中从字符串中删除非ASCII字#
我想过滤一些有错误字母(非-)的字符串。它在记事本、VisualStudio2010和MySQL中看起来不同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
如何检查字符串是否包含非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位的,对吗?)