C# 需要在每条推文C下写##
提前道歉,英语不是我的第一语言 我需要在每条tweet下面写: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
#..
。我使用的是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。)