C#替换URL正则表达式

C#替换URL正则表达式,c#,regex,url,C#,Regex,Url,我试图从字符串中提取URL,稍后使用它创建超链接。我希望能够做到以下几点: -确定输入字符串是否包含URL -从输入字符串中删除URL -将提取的URL存储在变量中以供以后使用 有人能帮我吗?这里有一个很好的解决方案,可以识别流行格式的URL,例如: www.google.com 邮寄地址:somebody@google.com somebody@google.com www.url-with-querystring.com/?url=具有querystring 使用的正则表达式是: /(

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


有人能帮我吗?

这里有一个很好的解决方案,可以识别流行格式的URL,例如:

  • www.google.com
  • 邮寄地址:somebody@google.com
  • somebody@google.com
  • www.url-with-querystring.com/?url=具有querystring
使用的正则表达式是:

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

但是,我建议您去看看工作示例。

这里有一个很好的解决方案,可以识别流行格式的URL,例如:

  • www.google.com
  • 邮寄地址:somebody@google.com
  • somebody@google.com
  • www.url-with-querystring.com/?url=具有querystring
使用的正则表达式是:

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

但是,我建议您去查看工作示例。

用您的输入替换输入

        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();
string输入=string.Empty;
var matches=Regex.matches(输入,
@“/(([A-Za-z]{3,9}:(?:\/\/)?)(?:&=\+\$,\w]+@)?[A-Za-z0-9.-+\\\(?:www.124;[-:&=\+$,\ w]+@[A-Za-z0-9.-+-/.\w-\+\/.*)?((?:\/[-+++++-\\\%.\w-\++-/.%.\w].*)/)(?:[-+++++-+-+-----+.%.\w].*)/)/;
List urlist=(matches.Cast().Select(match=>match.ToString()).ToList();

用您的输入替换输入

        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();
string输入=string.Empty;
var matches=Regex.matches(输入,
@“/(([A-Za-z]{3,9}:(?:\/\/)?)(?:&=\+\$,\w]+@)?[A-Za-z0-9.-+\\\(?:www.124;[-:&=\+$,\ w]+@[A-Za-z0-9.-+-/.\w-\+\/.*)?((?:\/[-+++++-\\\%.\w-\++-/.%.\w].*)/)(?:[-+++++-+-+-----+.%.\w].*)/)/;
List urlist=(matches.Cast().Select(match=>match.ToString()).ToList();

应该注意的是,如果没有几个示例,这项任务几乎不可能完成。我在自己的代码中经常使用此工具。我对正则表达式很在行,但是能够快速有效地测试它们,以及帮助构建它们,这确实是无价的。如果我没有那么多钱,我会很乐意捐给这个开发者。这是一个很好的起点。应该注意的是,如果没有几个示例,这项任务几乎不可能完成。我在自己的代码中经常使用这个工具。我对正则表达式很在行,但是能够快速有效地测试它们,以及帮助构建它们,这确实是无价的。如果我没有那么多钱,我会很乐意捐给这个开发者。对你来说,这是个不错的起点