我正在使用Twitter API,并希望将所有URL转换为超链接.
你想出这个最有效的方法是什么?
从
string myString = "This is my tweet check it out http://tinyurl.com/blah";
至
This is my tweet check it out http://tinyurl.com/>blah
samjudson.. 23
正则表达式可能是您执行此类任务的朋友:
Regex r = new Regex(@"(https?://[^\s]+)"); myString = r.Replace(myString, "$1");
匹配URL的正则表达式可能需要一些工作.
正则表达式可能是您执行此类任务的朋友:
Regex r = new Regex(@"(https?://[^\s]+)"); myString = r.Replace(myString, "$1");
匹配URL的正则表达式可能需要一些工作.
我使用jquery使用JSON API完成了同样的事情,这里是linkify函数:
String.prototype.linkify = function() { return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(m) { return m.link(m); }); };
这实际上是一个丑陋的问题.URL可以包含标点符号(并以标题符号结尾),因此在将URL嵌入到普通文本中时,很难确定URL实际结束的位置.例如:
http://example.com/.
是一个有效的URL,但它可以很容易地成为一个句子的结尾:
I buy all my witty T-shirts from http://example.com/.
您不能简单地解析,直到找到空格,因为那样您将把句点作为URL的一部分.您也不能简单地解析直到找到句点或空格,因为句点在URL中非常常见.
是的,正则表达式是你的朋友,但构建适当的正则表达式是困难的部分.
看看这个:用.NET中的Regex扩展URL.