我得到了一个URL验证任务,其中URL不应该包含任何特殊字符,并且应该只接受https。我试过
^((https)://)?([w+?.w+])+([a-zA-Z0-9\/.:]*)?$
这个regex模式适用于特殊字符,但不适用于https,它也接受http,而我只需要它接受https。我在谷歌上搜索了一下,但找不到任何解决方案。
regex
实际上是一个需求吗?
事实上,测试前7个字符要简单得多(我想也是高效的(:
var tests = new String[]{
"http://shouldfail",
"https://shouldsucceed",
"ftp://fail"
};
foreach(var test in tests){
if(test.StartsWith("https://", StringComparison.CurrentCultureIgnoreCase)){
Console.WriteLine(test + " is OK");
}else{
Console.WriteLine(test + " is not OK");
}
}
您可以这样做,例如:
static void Main(string[] args)
{
string pattern = @"^(https://)[w.-]+(?:.[w.-]+)+[w-._~:/?#[]@!$&'()*+,;=.]+$";
Regex reg = new Regex(pattern);
string[] urls = { "https://test.com", "http://test.com" };
foreach (var item in urls)
{
var test = reg.IsMatch(item);
Console.WriteLine(test.ToString());
}
Console.ReadKey();
}
结果是:
True
False