使用Regex表达式链接字符串中的URL
本文关键字:URL 字符串 链接 Regex 表达式 使用 | 更新日期: 2023-09-27 17:58:28
我想要一个匹配的正则表达式;
- www
- http
- https
它应该只让字符串中的url可以点击最好的方法是什么
我现在只有这个,但这个不匹配www。此外,我不知道如何在标签中显示整个文本,而不仅仅是链接。我想这可以通过一些空间分离和递归循环来完成,如果有人有一个好主意,我很乐意听到
Regex r = new Regex(@"(ftp|http|https):'/'/('w+:{0,1}'w*@)?('S+)(:[0-9]+)?('/|'/(['w#!:.?+=&%@!'-'/]))?");
// Match the regular expression pattern against a text string.
if (valueString != null)
{
Match m = r.Match(valueString);
if (m.Success)
{
labelHtml = "<a href='"" + m.Value + "'">" + m.Value + "</a>";
}
}
((Label)control).Text = labelHtml;
var regex = new Regex("some valid regex");
var text = "your original text to linkify";
MatchEvaluator evaluator = LinkifyUrls;
text = regex.Replace(text, evaluator);
...
private static string LinkifyUrls(Match m)
{
return "<a href='"" + m.Value + "'">" + m.Value + "</a>";
}
您可以使用Uri类。它进行验证。
var url = new Uri("http://www.google.com");
var text = url.ToString();
如果它是无效的url,则抛出异常。如果不能选择有异常,则可以使用静态Uri.TryCreate
。