检查C#中的字符串是否为URL

时间:2015-03-19 05:10:57

标签: c# string parsing url

here之前已经提到过,但答案都与PHP有关。 是否有使用C#的类似且有效的解决方案?像特定的测试类或例程? 我想解析www.google.com或google.com或mywebsite.net等...有或没有前缀。 感谢

3 个答案:

答案 0 :(得分:13)

C#也有正则表达式,但这似乎更简单:

bool isUri = Uri.IsWellFormedUriString(url, UriKind.RelativeOrAbsolute);

(在Regular expression for URL回答)

答案 1 :(得分:2)

https://msdn.microsoft.com/en-us/library/system.web.webpages.validator.regex(v=vs.111).aspx

您使用上述类或使用以下正则表达式并检查正则表达式匹配您的网址字符串

Regex UrlMatch = new Regex(@"(?i)(http(s)?:\/\/)?(\w{2,25}\.)+\w{3}([a-z0-9\-?=$-_.+!*()]+)(?i)", RegexOptions.Singleline);
Regex UrlMatchOnlyHttps = new Regex(@"(?i)(http(s)?:\/\/)(\w{2,25}\.)+\w{3}([a-z0-9\-?=$-_.+!*()]+)(?i)", RegexOptions.Singleline);

您也可以使用上面的regexpattern来验证网址

答案 2 :(得分:1)

您可以这样使用:

bool result = Uri.TryCreate(uriName, UriKind.RelativeOrAbsolute, out uriResult) 
              && uriResult.Scheme == Uri.UriSchemeHttp;