C# 需要在每条推文C下写##

C# 需要在每条推文C下写##,c#,twitter,tweetsharp,C#,Twitter,Tweetsharp,提前道歉,英语不是我的第一语言 我需要在每条tweet下面写:#..。我使用的是Regex.IsMatch,但控制台会编写所有推文 var tweet = tweets[i].Text; var CreatedDate = tweets[i].CreatedDate.ToString("F"); var TweetTime = DateTime.Parse(CreatedDate); var age = DateTime.Now.Subtract(TweetTime); Console.Writ

提前道歉,英语不是我的第一语言

我需要在每条tweet下面写:
#..
。我使用的是
Regex.IsMatch
,但控制台会编写所有推文

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);
}

我不知道你想实现什么,但我明白你为什么不打印标签。Regex.IsMatch不会更改文本,只是对其求值。试试这样的

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);

        }
谢谢,就这些 右图是下一个:

 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);
            }

感谢@M.Green

您的问题不清楚,但是
\D
匹配所有非数字的内容。也许如果您使用
@“#\d*”
它会起作用吗?您能提供一个示例,说明您希望输出的样子吗?它必须看起来像“bla bla#someinfo bla bla”,并在该文本下显示“someinfo”@maccettura@emsimpson92证券交易委员会this@emsimpson92thx,但它不起作用,“#someinfo”在一列中写下(wtf?)thx,但警告CS1503(参数1:无法从“char”转换为“string”和CS0120。)