使用Regex表达式链接字符串中的URL

本文关键字:URL 字符串 链接 Regex 表达式 使用 | 更新日期: 2023-09-27 17:58:28

我想要一个匹配的正则表达式;

  1. www
  2. http
  3. 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;

使用Regex表达式链接字符串中的URL

Anton Hansson为您提供了有效正则表达式和替换代码的链接。如果你不想用找到的URL等做更多的事情,下面是更先进的方法。
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