【发布时间】:2014-12-06 13:14:24
【问题描述】:
我正在使用 LinqToTwitter API 使用 Twitter API。我正在尝试格式化推文文本。但我有替换问题,下面的正则表达式是我从 twitter 获得的字符串
@TheNational: ICYMI: Louvre be first museum in Asia to show a painting http://t.co/fmp http://t.c…
现在我正在使用下面的代码将所有 URL 替换为链接以进行显示。
首先我创建正则表达式来获取链接
private readonly Regex _parseUrls = new Regex("(?<Protocol>\\w+):\\/\\/(?<Domain>[\\w@][\\w.:@]+)\\/?[\\w\\.?=%&=\\-@/$,]*", RegexOptions.IgnoreCase | RegexOptions.Compiled);
然后我匹配它们并替换如下
foreach (var urlMatch in _parseUrls.Matches(tweetText))
{
Match match = (Match)urlMatch;
tweetText = tweetText.Replace(match.Value, string.Format("<a href=\"{0}\" target=\"_blank\">{0}</a>", match.Value));
}
正则表达式按预期工作得很好,但现在替换出现问题,因为字符串中的两个链接都以 http://t.co 开头,它每次都替换第一次出现。
有人帮我解决我所缺少的。
【问题讨论】: