我正在努力同时创建一个带有主题标签的趋势列表和带有 Twitter ID 的提及列表。我有一个文本框、一个按钮和两个 ListView 。一旦我在文本框中输入带有一些文本的#abc 并按下按钮,#abc 就会移动到 ListView 以显示主题标签正在创建趋势列表,但我无法为 Twitter ID 执行此操作。如果主题标签和推特 ID 同时在文本框中工作,这将是理想的。例如,如果我写 Hiya please see #helloworld and how about @xyz
并按下按钮,两者都会移动到各自的 ListView 。以下是主题标签的代码。有人可以帮助我如何为 Twitter ID 做这件事吗?非常感谢。
private void buttonTwitter_Click(object sender, RoutedEventArgs e)
{
var regex = new Regex(@"(?<=#)\w+");
var matches = regex.Matches(tweetMsgsTextBox.Text);
foreach (Match m in matches)
{
MessageBox.Show("Hurray!! Hash Tag is on Trending!");
listhtag.Items.Add ("#" + m.Value);
}
最佳答案
将您的点击处理程序更改为此更新的正则表达式模式
Regex.Matches("Hiya please see #helloworld and how about @xyz", @"([#@]\w+)")
.OfType<Match>()
.Select (mt => mt.Groups[0].Value )
.ToList()
.ForEach( itm => listhtag.Items.Add(itm));
模式 ([#@]\w+)
将捕获“#”或“@”,然后是后面的单词作为单独的匹配项。然后从匹配组捕获的每个匹配中提取并将其放入列表中。
如果您有不同的列表,请检查第一个字符并将其添加到您的 foreach 操作中的适当列表中。
关于c# - 如何创建带有主题标签的趋势列表和带有推特 ID(如@xyz)的提及列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47424322/