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#を使用しています。常にnoを出力します。

更新:私のために働いた最終的な答え:

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

Note: you don't need brackets here if you not capturing parts of the match, the optional operator is applied to the previous character only so ^https?$ matches 'http' or 'https' and not '' as only the s is optional, Also escape all . characters as in regex the . characters matches any single character so to match a literal . you want \..

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