嗨,请帮我这个正则表达式,为什么它不起作用?

时间:2013-07-01 21:58:07

标签: c# regex url dns

这是域的过滤器,在第一个块可能是http,https,ftp 而且我也不知道,我怎么能在没有打字的情况下实现特殊情况的感觉,我需要例如:Http或HTTP,或http但不是hTtP是错误的。 谢谢大家帮忙!!!

string reg = @"^?((http|https|ftp)\://)(([a-zA-Z]|[а-яА-ЯёЁ])[0-9]\_\.+){3,61}([a-zA-Z]|[а-яА-ЯёЁ]){2,6}$";

1 个答案:

答案 0 :(得分:0)

听起来你想要这种模式:

^?((https?|ftp|HTTPS?|FTP)\://)(([a-zа-яё]|[A-ZА-ЯЁ])[0-9]\_\.+){3,61}([a-zа-яё]|[A-ZА-ЯЁ]){2,6}$

但是如果你想在URL的正好方案部分中使用标题案例字符串:

^?(([hH]ttps?|ftp|HTTPS?|FTP)\://)(([a-zа-яё]|[A-ZА-ЯЁ])[0-9]\_\.+){3,61}([a-zа-яё]|[A-ZА-ЯЁ]){2,6}$

或者在每个部分都允许标题大小写字符串,这会有点混乱:

^?(([hH]ttps?|ftp|HTTPS?|FTP)\://)([a-zа-яёA-ZА-ЯЁ]?([a-zа-яё]|[A-ZА-ЯЁ])[0-8])\_\.+){3,61}[a-zа-яёA-ZА-ЯЁ]([a-zа-яё]|[A-ZА-ЯЁ]){1,6}$