我正在尝试找出属于 :
的 URLhttp://domain.blob.core.windows.net/
https://domain.blob.core.windows.net/
http://domain.blob.core.windows.net
https://domain.blob.core.windows.net
我写的正则表达式
Regex reg2= new Regex(@"^http(s?)://[0-9a-zA-Z](.blob.core.windows.net)(/?)$");
string url = "http://abc.blob.core.windows.net";
if(reg2.IsMatch(url))
{
Console.WriteLine("Yes");
}
else
{
Console.WriteLine("no");
}
我找不到匹配项。它不起作用 :( 我在正则表达式方面很弱。所以任何人都可以帮我找出我的错误吗?我正在使用 c#。它总是打印不。
更新:对我有用的最终答案:
Regex reg2 = new Regex(@"^http(s?)\:\/\/[0-9a-zA-Z]*(\.blob\.core\.windows\.net)
(/?)$");
以防万一有人需要这样的东西:)
请您参考如下方法:
你接近 "^http(s?)://[0-9a-zA-Z](.blob.core.windows.net)(/?)$" 然而[0-9a-zA-Z] 应该是 [0-9a-zA-Z]+ 因为你想在 .blob.core 之前是多个字符.windows.net 不只是一个字符。
注意:如果您不捕获部分匹配项,则此处不需要括号,可选运算符仅应用于前一个字符,因此 ^https?$ 匹配 'http' 或 'https' 而不是 '' 因为只有 s 是可选的,还要转义所有 . characters as in regex . characters matches any single character so to match a literal . 你想要 \. .
"^https?://[0-9a-zA-Z]+\.blob\.core\.windows\.net/?$"
