当前位置:  开发笔记 > 编程语言 > 正文

将URL转换为C#字符串中的超链接的最简单方法?

如何解决《将URL转换为C#字符串中的超链接的最简单方法?》经验,为你挑选了3个好方法。

我正在使用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的正则表达式可能需要一些工作.



1> samjudson..:

正则表达式可能是您执行此类任务的朋友:

Regex r = new Regex(@"(https?://[^\s]+)");
myString = r.Replace(myString, "$1");

匹配URL的正则表达式可能需要一些工作.


我认为这很好,正则表达式是强大的,但是捕获而非空白比尝试在正则表达式中实现URL解析器要好得多.我可能会把它改成`(https?:// [^] +)`因为https并不常见.

2> RedWolves..:

我使用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);
    });
 };



3> Derek Park..:

这实际上是一个丑陋的问题.URL可以包含标点符号(并以标题符号结尾),因此在将URL嵌入到普通文本中时,很难确定URL实际结束的位置.例如:

http://example.com/.

是一个有效的URL,但它可以很容易地成为一个句子的结尾:

I buy all my witty T-shirts from http://example.com/.

您不能简单地解析,直到找到空格,因为那样您将把句点作为URL的一部分.您也不能简单地解析直到找到句点或空格,因为句点在URL中非常常见.

是的,正则表达式是你的朋友,但构建适当的正则表达式是困难的部分.

看看这个:用.NET中的Regex扩展URL.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有