C# 关于字符串中 符合正则表达式的指定字符的替换的方法

今天在做新浪的API的时候遇到一个问题,新浪返回的微博信息中的网址是以字符串形式出现的。我就纠结在怎么把,从新浪API返回的所有微博信息中添加上a标签。

如:

"text":"轻松达成了“兵器达人”的1星任务。 我收集到了1种兵刃轻松达成了“兵器达人”的1星任务。去Q将三国看看:http://t.cn/Scc1rE"

怎么吧所有的text中的网址加上a标签,重点是href属性的网址怎么动态赋值。

下面是我的做法,希望对大家能有帮助。

string result  = httpRequest.Request(url, String.Empty);
Regex r = new Regex(@"http://t\.cn/[a-zA-Z0-9]{6}");
MatchCollection mc = r.Matches(result);
for (int i = 0; i < mc.Count; i++)
{
result=result.Replace(mc[i].Value, "<a href='" + mc[i].Value + "' target='_blank'>" + mc[i].Value + "</a>");
}

httpRequest.Request(url,String.Empty),是我封装的一个调用新浪API的方法,返回的是微博信息。

据我观察(不知道是不是真的),新浪微博中网址都是http://t.cn/+6个数字或字母,所以正则表达式是:http://t\.cn/[a-zA-Z0-9]{6}

MatchCollection 可以返回匹配的字符串的数量。

通过mc[i].Value,可以获取到匹配的字符串的值。

 

这算是我今天的一个总结文章吧。希望对大家也有所帮助和启发。

 

你可能感兴趣的:(正则表达式)