1

我正在尝试找出属于的 URL:

http://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)
(/?)$");

以防万一有人需要这样的东西:)

4

1 回答 1

4

"^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可选,还转义所有.字符,因为regex字符.匹配任何单个字符以便匹配.您想要的文字\.

"^https?://[0-9a-zA-Z]+\.blob\.core\.windows\.net/?$"
于 2012-12-10T09:15:09.873 回答