用于URLvalidation的正则表达式

我写了正则表达式来validationURL,可能就像

google.com www.google.com http://www.google.com https://www.google.com 

我用过

 Regex urlRx = new Regex(@"^(http|ftp|https|www)://([\w+?\.\w+])+([a-zA-Z0-9\~\!\@\#\$\%\^\&\*\(\)_\-\=\+\\\/\?\.\:\;\'\,]*)?$", RegexOptions.IgnoreCase); 

它适用于http和https.It不适用于google./com和www.google.com。

请帮我解决这个问题。

谢谢

不需要正则表达式恕我直言 – 尝试

 Uri.IsWellFormedUriString(YourURLString, UriKind.RelativeOrAbsolute) 

请参阅MSDN

将协议部分放在可选组中,即()?

 ^((http|ftp|https|www)://)?([\w+?\.\w+])+([a-zA-Z0-9\~\!\@\#\$\%\^\&\*\(\)_\-\=\+\\\/\?\.\:\;\'\,]*)?$ 

我从jquery.validation获得了这段代码(我做了一些编辑)

bool isValid =(Regex.IsMatch(value,@“(((([az] | \ d | – |。 ||〜| [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])|( %[\ DA-F] {2})| [\ $&’()* +,=!] |:?)* @)(((\ d | [1-9] \ d | 1 \ d \ d | 2 [0-4] \ d | 25 [0-5])(\ d |。[1-9] \ d | 1 \ d \ d | 2 [0-4] \ d | 25 0 -5])(\ d |。[1-9] \ d | 1 \ d \ d | 2 [0-4] \ d | 25 [0-5])(\ d |。[1-9] \ d | 1 \ d \ d | 2 [0-4] \ d | 25 [0-5]))|((([AZ] | \ d | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])|(([az] | \ d | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])([az] | \ d | – |。| |〜| [\ u00A0 – \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF]) ([az] | \ d | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])))。)+(([az ] | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])|(([AZ] | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])([AZ] | \ d | – |。| _ |〜| [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF]) ([az] | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF ])))。?)(:\ d *)?)(/((([az] | \ d | – |。| |〜| [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF ])|(%[\ DA-F] {2})| [\ $&’()* +,=] |:| @)+(/(([AZ] | \ d | – |!。 | |〜| [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])|(%[\ da-f] {2})| [!\ $&’()* + ,; =] |:| @) )?)?(\?((([az] | \ d | – |。| |〜| [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])|( %[\ DA-F ] {2})| [\ $&’()* +,=] |:!?| @)| [\ uE000- \ uF8FF] | / | \)*)(#((([AZ] | \ d | – | | |〜| [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])|(%[\ DA-F] {2})| [\ $&’()* +,;!=] | ?:| @)| / | \)*)$“));

我正在寻找将近一整天,这是我发现的最好的..这些只是少数有效样本:

  1. example.com
  2. example.com.ph
  3. http://www.example.com
  4. http://example.com
  5. https://example.com
  6. http://www.example.com
  7. ftp://example.com
  8. example.com/doc
  9. http://www.example.com/doc
  10. http://example.com/doc
  11. http://example.com/questions/12576252/convert-javascript-regex-to-c-sharp-regex-for-email-validation
  12. http://www.example.com/wpstyle/?p=364
  13. HTTP://用户名:password@example.com:8080
  14. https://www.example.com/foo/?bar=baz&inga=42&quux
  15. LDAP://ad1.cc.uq.edu.ph
 ^(http|http(s)?://)?([\w-]+\.)+[\w-]+[.com|.in|.org]+(\[\?%&=]*)?