Вычленить из твита хэштег

162
22 октября 2018, 20:30

Вывожу список твитов в консоль, после чего под каждый твит нужно отдельно вывести его хэштег использую метод regex+isMatch Как результат твит, в котором хэштег выводится под твитом полностью, но раскладывается на 1 символ - 1 строка.

                var tweet = tweets[i].Text;
            var CreatedDate = tweets[i].CreatedDate.ToString("F");
            var TweetTime = DateTime.Parse(CreatedDate);
            var age = DateTime.Now.Subtract(TweetTime);
            Console.WriteLine(tweet);
            Console.WriteLine($"с момента создания прошло {age} времени");
            Console.WriteLine();
            var pattern = @"\s*#\s*";
            foreach(var sharp in tweet)
            {
                if (Regex.IsMatch(tweet, pattern, RegexOptions.IgnoreCase))
                    Console.WriteLine(sharp);
            }
Answer 1

Используйте метод поиска соответствий - Regex.Matches и ещё немного модифицируйте паттерн, чтобы он включал не только решётку, но и само слово после неё.
Тогда Regex.Matchesприменённый к тексту из твита как раз и вернёт вам MatchCollection - коллекцию хэштегов из вашей строки.

string pattern = @"\s*#(\w+)\s*";
Regex rgx = new Regex(pattern, RegexOptions.IgnoreCase);
MatchCollection matches = rgx.Matches(input);
if (matches.Count > 0)
{
    foreach (Match match in matches)
    Console.WriteLine("   " + match.Value);
}

Коротко об используемых элементах шаблона (из комментария Anamnian):

  • \s - символ пробела
  • * квантификатор, указывающий что пред. символ может встречаться от 0 до неограниченного числа раз
  • # - обычная решетка
  • () - обозначение группы символов \w - любая буква
  • + квантификатор, указывающий что пред символ может встречаться от 1 до неограниченного числа раз.

Документация по регулярным выражениям
Кратко о регулярных выражениях
Справочник элементов языка регулярных выражений

READ ALSO
Инициализация навбара в ASP.NET Core MVC

Инициализация навбара в ASP.NET Core MVC

Есть навбар, он идет один на все страницы, нужно чтобы при заходе пользователя с другими правами в навбаре будет изменятся количество и название...

181
Красные галки возле классов и проекта в Visual Studio

Красные галки возле классов и проекта в Visual Studio

Создаю игру в unityПишу скрипты в Visual Studio 2017

170
C# WPF Button.Click дополнительная информация

C# WPF Button.Click дополнительная информация

Как мне передать некую дополнительную информацию, когда происходит событие клика на кнопку? К примеру, существует ListBox, который выводит информацию...

227