Прошу прощения, если это дубликат, но я не могу найти свой ответ, и я уже давно его искал. Используя C# или регулярное выражение, я пытаюсь найти и заменить все слова с хэштегами в строке и заключить их в теги HTML.
Пример ввода текста:
I would like to wrap #AllHashtags with html #Code to make it #StandOut
Идеальный выходной текст
I would like to wrap <span class = "yellow">#AllHashtags</span> with html <span class = "yellow">#Code</span> to make it <span class = "yellow">#StandOut</span>
Я пробовал следующее, но не повезло
tweet.Text = "<span class='yellow'>" + tweet.Hashtags + "</span>";
tweet.Text.Replace("#", "<span class='yellow'>#");
tweet test = tweet.Text.IndexOf("#", 0);
var containsHastag = tweet.Text.Contains("#", StringComparer.OrdinalIgnoreCase);
Любая помощь будет оценена по достоинству.
Вы можете использовать
var res = Regex.Replace(s, @"#\w+", "<span class=\"yellow\">$&</span>");
См. демонстрация регулярного выражения
#\w+
соответствует #
, а затем одному или нескольким символам слова (буквы, цифры, _
и т. д.), А $&
ссылается на все значение соответствия (следовательно, нет необходимости использовать группу захвата вокруг всего шаблона регулярного выражения).
Спасибо Виктору за демонстрацию. Очень признателен.