使用c#将url替换为活动链接

本文关键字:活动 链接 替换 url 使用 | 更新日期: 2023-09-27 18:03:37

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

Lorem ipsum dolor sit www.google.com amet, consecteteer adiping elite, www.yahoo.com sed diamam nonummy nih, ismodent incidunt, not laoreet dolore magna aliquam at volut。但明智的做法和最小的veni,这是一种不常见的练习,可以使受试者的大脑更灵活。

我是否必须拆分字符串,然后用正则表达式匹配每个单词,如果找到匹配我替换?但是我认为有更好的方法,只是我想不出来。

谢谢你的帮助。

Devang .

使用c#将url替换为活动链接

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

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

如果您嵌入的url不包括"http://"部分,那么可能很难识别它们,因此您选择的模式将取决于您的输入文本。

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);