如何保持重音字符,字母数字和符号

时间:2017-06-12 11:19:47

标签: c# regex

如何保留字母,数字,符号和重音字符c#。我想摆脱表情符号和"最高"字符。这有效,但忽略了新的界限。

string Message = @"The cédille (cedilla) Ç ...The Accent aigu (acute accent) é ...
        The Accent circonflexe (circumflex) â, ê, î, ô, û ...
        The accent grave (grave accent) à, è, ù ...
        The accent tréma (dieresis/umlaut) ë, ï, ü" 最高 ;

var msg = Regex.Match(Message, @"[a-zA-zÀ-ÿ0-9/ [.,\/#!$%\^&\*;:{}=\-_`~()?<>]+");

Console.WriteLine(msg);
Console.ReadKey();

2 个答案:

答案 0 :(得分:2)

在我看来,你只想保留ASCII字符,而不是所有其他字符集(如UTF-8/16)字符。

这样做:

string msg = new string(Message.Where(c => ((int)c) < 256).ToArray());

答案 1 :(得分:0)

使用Matches方法

var matches = Regex.Matches(Message, @"[a-zA-zÀ-ÿ0-9/ [.,\/#!$%\^&\*;:{}=\-_`~()?<>]+");
foreach (Match match in matches)
{
    Console.WriteLine(match.Value);
}

将返回MatchCollection,您可以使用换行符轻松转换为字符串。

string message = "";
foreach (Match match in matches)
{
    message += match.Value + Environment.NewLine;
}

Console.WriteLine(message);