假设我有一个列表,列表由Tweets填充,下面有两个例子:
Tweet 1 = RT @randomuser_: what you saying
Tweet 2 = @randomusertwo hello this is a tweet
正如您可以从推文中看到的那样,有两种可能性,以冒号或空格结尾。我目前的实现只允许一次检查一个,见下文:
List<string> Tweets = new List<string>();
foreach (var men in Tweets)
{
int pFrom = men.IndexOf("@") + "@".Length;
int pToColon = men.LastIndexOf(":");
//int pToSpace = men.LastIndexOf(" ");
string result = mention.Substring(pFrom, pToColon - pFrom);
listBox1.Items.Add(result);
}
如何检查用户名是否以冒号或空格结尾? 编辑:我知道LastIndexOf返回一个整数,但不知道如何区分推文
答案 0 :(得分:-3)
虽然有些用户提供了使用API的提示,但如果您需要一种在文本中查找Twitter用户名的方法,则可以轻松使用Regex库。这不是什么值得羞耻的事。
var Tweets = new List<string>();
Tweets.Add("RT @randomuser_: what you saying some@some.com");
Tweets.Add("@randomusertwo hello this is a tweet");
var usernames = new List<string>();
foreach (var men in Tweets)
{
var regex = new Regex(@"(?<=^|(?<=[^a-zA-Z0-9-_\.]))@([A-Za-z]+[A-Za-z0-9]+)");
foreach (Match match in regex.Matches(men))
{
usernames.Add(match.Value);
}
}
编辑:排除电子邮件,从此答案中复制正则表达式:regex for Twitter username