简体   繁体   English

用于Azure Blob容器的正则表达式

[英]Regex for Azure blob containers

Trying to create a regex to use in the following code to ensure my input conforms to Azure blob container rules, but needing a regex means I have 2 problems. 尝试创建一个正则表达式以在下面的代码中使用以确保我的输入符合Azure blob容器规则,但是需要一个正则表达式意味着我有两个问题。

Rules: 规则:

  • Letters and numbers and hyphens only 仅字母,数字和连字符
  • No spaces 没有空间
  • Must start with a letter or number 必须以字母或数字开头

Not worried about lower case as I am going to .ToLower() it after this. 不担心小写,因为在此之后我要使用.ToLower()。

Tried this but it keeps $ and ^ so I must be doing something wrong? 试过这个,但是保留$和^,所以我一定做错了吗?

Regex rgx = new Regex(@"^[a-zA-Z][a-zA-Z0-9]*$");

Try this instead: 尝试以下方法:

        Regex regEx = new Regex("^[a-z0-9](?:[a-z0-9]|(\\-(?!\\-))){1,61}[a-z0-9]$|^\\$root$");
        var isContainerNameValid = regEx.IsMatch(containerName);

Source: Azure Portal --> New Container creation screen --> View Source :) 来源:Azure门户->“新建容器”屏幕->“查看来源:”

The latest version of the Azure Storage Library now contains this method: 现在,最新版本的Azure存储库包含此方法:

   Microsoft.WindowsAzure.Storage.NameValidator.ValidateContainerName(myContainerName);

If the name is not valid it will throw an ArgumentException. 如果名称无效,则将引发ArgumentException。

Better than trying to make your own. 比尝试自己做要好。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM