URL正则表达式更新


URL Regular Expression Update

我使用以下表达式进行URL验证。

^(https?:'/'/)?(['da-z'.-]+)'.([a-z'.]{2,6})(['/'w '.-]*)*'/?$
然而,当我有
"httpcolonforwardslashessite" (colon = : and foward slashes = //)

仍然作为url传递。我如何修改上面的表达式,以确保有"。com . net"在结束?

谢谢

tldr:我想检查url末尾是否有。com或。net。我可以对上面的经验做什么改变来实现这一点?

你不能使用内置函数,而不是正则表达式?

Uri.TryCreate Method可以帮助你。

这个方法

    如果成功创建了Uri,则
  • 返回Boolean值为true;否则,false .
  • 可以检查不同类型的url,如绝对或/和相对使用过载接受UriKind Enumeration作为参数。

假设您只想要。com,这将工作:

^(https?://)?(['da-z.-]+).([a-z.]{2,6})([/'w .-])/?'.com([/'w '.!"£$%^&'(')'*])*

或者这个不仅仅包括。com

^(http|https)'://[a-zA-Z0-9'-'.]+'.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9'-'._'?',''/'''+&%'$#'=~])*$