我已经看到许多用于网址验证的正则表达式。
就我而言,我希望Url更简单,因此正则表达式应更严格:

有效的网址前缀如下所示:


http [s]:// [www。] addressOrIp [.something] /PageName.aspx [?]


这描述了一个前缀。我将在后面附加?x=a&y=b&z=c。我只想在访问该网页之前检查该网页是否处于活动状态,但是即使在此之前,我也要确保已正确配置该网页。我想以不同的方式对待bad urlhost is down条件,尽管有疑问时,我宁愿给出host is down消息,因为无论如何这是最终的测试。希望这是有道理的。我想我想说的是-正则表达式不需要太激进,我只想让它涵盖95%的情况。

这是以C#为中心的,因此Perl regex扩展名对我没有帮助;让我们坚持最低的公分母。

谢谢!

最佳答案

您应该使用Uri类:

Uri uri;

if (!Uri.TryCreate(str, UriKind.Absolute, out uri))
    //Bad bad bad!!!
if (uri.Scheme != "http" && uri.Scheme != "https")
    //Bad bad bad!!!
if (uri.Host.IndexOf('.') <0)
    //Bad bad bad!!!

关于c# - 另一个URL前缀正则表达式问题(将在C#中使用),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2781792/

10-10 05:21