Вот фрагмент кода с сайта, который я написал, который анализирует канал Twitter. Он анализирует ссылки, хэш-теги и имена пользователей Twitter. Пока все работает нормально. Я знаю, что это не Ruby, но регулярное выражение должно быть полезным.
if(tweetStream[i] != null)
{
var str = tweetStream[i].Text;
var re = new Regex(@"http(s)?:\/\/\S+");
MatchCollection mc = re.Matches(tweetStream[i].Text);
foreach (Match m in mc)
{
str = str.Replace(m.Value, "<a href='" + m.Value + "' target='_blank'>" + m.Value + "</a>");
}
re = new Regex(@"(@)(\w+)");
mc = re.Matches(tweetStream[i].Text);
foreach (Match m in mc)
{
str = str.Replace(m.Value, "<a href='http://twitter.com/" + m.Value.Replace("@",string.Empty) + "' target='_blank'>" + m.Value + "</a>");
}
re = new Regex(@"(#)(\w+)");
mc = re.Matches(tweetStream[i].Text);
foreach (Match m in mc)
{
str = str.Replace(m.Value, "<a href='http://twitter.com/#search?q=" + m.Value.Replace("#", "%23") + "' target='_blank'>" + m.Value + "</a>");
}
tweets += string1 + "<div>" + str + "</div>" + string2;
}