如何保留字母,数字,符号和重音字符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();
答案 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);