Я хочу удалить смайлик из строки, но он не работаетКак удалить не-ASCII из строки - C#
string str = "Hello world ☀⛿";
string result = Regex.Replace(str, @"\p{Cs}", "");
Я хочу удалить смайлик из строки, но он не работаетКак удалить не-ASCII из строки - C#
string str = "Hello world ☀⛿";
string result = Regex.Replace(str, @"\p{Cs}", "");
я сравнил несколько вариантов, которые я нашел/мысль:
string text = "Hello world ☀⛿END";
Console.WriteLine(text);
Console.WriteLine(Regex.Replace(text, @"\p{Cs}", ""));
Console.WriteLine(Regex.Replace(text, @"[^\u0000-\u007F]+", ""));
Console.WriteLine(text.Where(c => !Char.IsSurrogate(c)).ToArray());
и это результат:
Hello world ??????END
Hello world ??END
Hello world END
Hello world ??END
Я не уверен, что если ваша входная строка, после того, как копировать, вставлять здесь, копировать снова и вставить в Vi sual Studio испытывает некоторые изменения в процессе, но из того, что я вижу, очевидно, что второй вариант работает лучше.
Вы хотите удалить все специальные символы или только emoji?
Regex.Replace (str, @ "[^ \ u0000- \ u007F] +", ""); работает и спасибо – asa
Однако он не только соответствует «emojis», он будет удалять кириллические буквы и многое другое. –
Точно. Я предполагаю, что @asa просто нужно удалить * странные * персонажи и не ожидает ничего особенного. Это правильно? – Andrew
Что должно делать это регулярное выражение? Это не выглядит даже отдаленно полезным для вашей цели. – Andrew
Я думаю, что решение вслепую взято из http://stackoverflow.com/a/28025891/3832970 –
О, если Джон Скит предложил это, тогда он должен работать. Я просто попробовал это с онлайн-страницей регулярных выражений, которая не поддерживает это. – Andrew