首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用C#将urls替换为实时链接

使用C#将urls替换为实时链接
EN

Stack Overflow用户
提问于 2011-07-25 11:42:33
回答 2查看 3.3K关注 0票数 1

我有一个用户文本块,在那里我需要找到所有的网址,并将它们更改为超链接。例如,在下面的代码块中,我需要用<a href="www.google.com">www.google.com</a>替换www.google.com,用<a href="www.yahoo.com">www.yahoo.com</a>替换www.yahoo.com。

Lorem ipsum dolor www.google.com amet,consectetuer elit,www.yahoo.com sed diam nonummy nibh euismod ut laoreet dolore aliquam erat volutpat.2.我不知道该怎么做,我要做的就是练习悬浮液。

我是否必须拆分字符串,然后将每个单词与正则表达式匹配,如果找到匹配,则替换?但我认为有一个更好的方法,只是我无法弄清楚。

谢谢你的帮助。

德王。

EN

回答 2

Stack Overflow用户

发布于 2011-07-25 12:09:54

代码语言:javascript
复制
string s = "Lorem ipsum dolor sit www.google.com amet, consectetuer adipiscing elit, www.yahoo.com sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip";

string newS = Regex.Replace(s, "((https?://)?www\\.[^\\s]+)", "<a href=\"$1\">$1</a>");

Console.WriteLine(newS);
票数 0
EN

Stack Overflow用户

发布于 2011-07-25 12:27:53

Regex.Replace将替换与给定模式匹配的多次出现的子字符串,因此不需要首先拆分字符串。

困难的部分是决定你想要匹配什么作为URL。例如,如果您希望匹配任何与RFC 3987兼容的字符串,那么您的模式将变得相当复杂。

如果您的嵌入URL不包含"http://“部件”,则可能很难识别它们,因此您选择的模式将取决于您的输入文本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6811590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档