我有一个用户文本块,在那里我需要找到所有的网址,并将它们更改为超链接。例如,在下面的代码块中,我需要用<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.我不知道该怎么做,我要做的就是练习悬浮液。
我是否必须拆分字符串,然后将每个单词与正则表达式匹配,如果找到匹配,则替换?但我认为有一个更好的方法,只是我无法弄清楚。
谢谢你的帮助。
德王。
发布于 2011-07-25 12:09:54
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);发布于 2011-07-25 12:27:53
Regex.Replace将替换与给定模式匹配的多次出现的子字符串,因此不需要首先拆分字符串。
困难的部分是决定你想要匹配什么作为URL。例如,如果您希望匹配任何与RFC 3987兼容的字符串,那么您的模式将变得相当复杂。
如果您的嵌入URL不包含"http://“部件”,则可能很难识别它们,因此您选择的模式将取决于您的输入文本。
https://stackoverflow.com/questions/6811590
复制相似问题