Найдите и замените все слова, начинающиеся с #, и оберните текст с хэштегом в HTML - PullRequest
0 голосов
/ 29 октября 2018

Я прошу прощения, если это дубликат, но я не могу найти свой ответ, и я искал некоторое время сейчас. Используя 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);

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 29 октября 2018

Вы можете использовать

var res = Regex.Replace(s, @"#\w+", "<span class=\"yellow\">$&</span>");

См. Демоверсию regex

#\w+ соответствует #, а затем 1 или более символам слов (буквы, цифры, _ и т. Д.), А $& ссылается на все значение соответствия (следовательно, нет необходимости использовать группу захвата вокруг весь шаблон регулярных выражений).

enter image description here

...