C# 输出带有超链接的文本

C# 输出带有超链接的文本,c#,.net,ruby-on-rails,asp.net-mvc,asp.net-mvc-2,C#,.net,Ruby On Rails,Asp.net Mvc,Asp.net Mvc 2,如果您有来自以下数据库的文本: "New Apple TV Offers 8 GB of Internal Storage, 256 MB RAM http://t.co/fQ7rquF" 有没有一种助手方法可以将该文本和web地址包装为锚定标记?在我的脑海中,我会运行一个正则表达式来匹配链接模式,并在其周围抛出锚定标记 在谷歌上找到: using System.Text.RegularExpressions; public string ConvertURLsToHyperlinks(

如果您有来自以下数据库的文本:

 "New Apple TV Offers 8 GB of Internal Storage, 256 MB RAM http://t.co/fQ7rquF"

有没有一种助手方法可以将该文本和web地址包装为锚定标记?

在我的脑海中,我会运行一个正则表达式来匹配链接模式,并在其周围抛出锚定标记

在谷歌上找到:

using System.Text.RegularExpressions; 

public string ConvertURLsToHyperlinks(string sInput) 
{ 
    return Regex.Replace(sInput, @"(\bhttp://[^ ]+\b)", @"<a href=""$0"">$0</a>"); 
}
使用System.Text.regular表达式;
公共字符串转换器URLSTO超链接(字符串输入)
{ 
返回Regex.Replace(sInput,@“(\bhttp://[^]+\b)”,@”);
}

它查找“http://”,后跟任何非空格的内容,由单词边界分隔。

我相信没有这样的助手方法,但您可以创建一个

public static class helper{
public static string AnchorHelper(this htmlHelper helper, string text)
{
   //here u can use kevin's function to generate anchors
   return ConvertURLsToHyperlinks(text);  
}
}
您必须在视图中添加相应的名称空间,然后您可以像其他html助手一样使用它

<%=Html.AnchorHelper(TextwithUrls)%>


这在问题中所述的示例中有效,但现实世界中的许多URL以斜杠(
/
)或其他标点字符结尾,您的正则表达式与之不匹配。这实际上不起作用。我从Kevin提供的链接复制了正则表达式,该链接起作用-RegEx.Replace(sInput,@“(\bhttp://[^]+\b)”,@“)@Timwi-我们如何修改正则表达式来修复它?@Timwi-在正则表达式上加一个斜杠似乎很好end@Jon:不,没有。它不会链接斜杠。(和其他标点符号)类需要标记为
static
,以便允许在其中使用扩展方法。