C#替换URL Regex

时间:2013-03-20 18:31:31

标签: c# regex url

我正在尝试从字符串中提取URL并稍后使用它来创建超链接。我希望能够做到以下几点: - 确定输入字符串是否包含URL - 从输入字符串中删除URL - 将提取的URL存储在变量中供以后使用

任何人都可以帮我吗?

2 个答案:

答案 0 :(得分:3)

这是一个很好的解决方案,用于识别流行格式的网址,例如:

  • www.google.com
  • http://www.google.com
  • 的mailto:somebody@google.com
  • somebody@google.com
  • www.url-with-querystring.com/?url=has-querystring

使用的正则表达式是:

/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/

但是,我建议你转到http://blog.mattheworiordan.com/post/13174566389/url-regular-expression-for-links-with-or-without-the查看工作示例。

答案 1 :(得分:0)

用输入替换输入

        string input = string.Empty;
        var matches = Regex.Matches(input,
                      @"/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[.\!\/\\w]*))?)/");
        List<string> urlList = (matches.Cast<object>().Select(match => match.ToString())).ToList();