Я пытаюсь разобрать строку и удалить из нее «emojis» и сохранить новые строки.Разбор одной строки дает два разных значения
Итак, у меня есть этот кусок кода:
string text = "S H A V A . Est 2015\nBandung\nLine: @ubm5921j\nBbm: 7D2E6310\nFAST ORDER\ud83d\udc47\ud83c\udffe\ud83d\udc47\ud83c\udffe";
MessageBox.Show(text);
string result = Regex.Replace(text, @"\p{Cs}", "");
Выход «текст» здесь является следующее:
Итак, как вы можете видеть новые линии работы отлично, и в конце его есть «emojis», а на следующей строке он удаляет их ОТЛИЧНО. Таким образом, строка результата будет содержать ту же строку с новыми строками и emojis.
В другой части программы у меня есть этот код.
//uu.description is the same string as above 'text',
//this is where I scrape directly from html
string text2 = uu.description;
MessageBox.Show(text2);
string result2 = Regex.Replace(text2, @"\p{Cs}", "");
Как вы можете видеть, в этом случае, мой text2 выводит строку в формате, как он есть, а регулярное выражение абсолютно ничего не делает. Новые строки не работают, и emojis не удаляются.
Я очень смущен, почему он работает в моем первом случае, а не во втором случае. Я занимаюсь этим часами и не могу понять.
Попробуйте 'string text2 = Regex.Unescape (uu.description);' и замените символы '@" \ p {Cs} "'. Или проверьте код соскабливания: вы получите все символы, сбежавшие в какой-то момент. Пожалуйста, покажите код очистки HTML. –
'string text2 = HttpUtility.HtmlDecode (uu.description);' –
'string text2 = WebUtility.HtmlDecode (uu.description);' если вы используете .NET 4.0 и выше –