Need write # under each tweet C#

44 Views Asked by At

Apologies in advance, English is not my first language.

I need to write under each tweet: #..... I am using Regex.IsMatch, but console write all tweets.

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 = @"#\D*";

foreach(var sharp in tweet)
{
    if (Regex.IsMatch(tweet, pattern, RegexOptions.IgnoreCase))
        Console.WriteLine(sharp);
}
2

There are 2 best solutions below

1
Juls On

I don't know what you're trying to implement, but i see why your not getting the hashtag to print. Regex.IsMatch doesn't change the text it just evaluates it. Try something like this.

var pattern = @"#\D*";

        foreach (var sharp in tweet)
        {
            var match = Regex.Match(pattern, sharp);
            if (match.Success)
                Console.WriteLine(Regex.Replace(sharp, match.Value, "#" + match.Value, RegexOptions.Singleline));
            else
                Console.WriteLine(sharp);

        }
0
Тимур Алексеев On

Thank's all Right anwsers is next:

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

Thanks for @M. Green