【发布时间】:2016-05-09 20:58:04
【问题描述】:
如何使用正则表达式验证 Azure 容器名称?我从其他帖子中找到了以下代码行,但它没有验证连续的破折号 (-)。
if (!Regex.IsMatch(containerName, @"^[a-z0-9](([a-z0-9\-[^\-])){1,61}[a-z0-9]$"))
throw new Exception("Invalid container name);
例如以下字符串在上述正则表达式模式下被认为是有效的:
test--test
规则是:
- 3 到 63 个字符;
- 以字母或数字开头;
- 包含字母、数字和破折号 (
-); - 每个破折号 (
-) 必须紧跟在字母或数字的前面和后面
【问题讨论】:
-
这个正则表达式包含一个用户错误:我相信这个
[a-z0-9\-[^\-]部分没有按照作者的意图进行匹配。它意味着匹配什么样的字符串?有什么要求? -
- 3 到 63 个字符; - 以字母或数字开头; - 包含字母、数字和破折号 (-); - 每个破折号 (-) 必须紧跟在一个字母或数字之前和之后
标签: regex c#-4.0 asp.net-web-api2 azure-blob-storage asp.net-web-api-routing