check是自定义格式的有效字符串吗?括号的数量

时间:2014-07-15 05:23:12

标签: c# regex

我需要一个正则表达式来检查这种格式:

[有些数字] [有些数字] [有些数字] [有些数字] [有些数字] [有些数字]

"一些数字"表示每个数字(0或1或2或3或......),2位数,3位数或更多......

但重要的是每个开放式支架在另一个开放式支架之前关闭......

实际上我想检查格式并获得[]的数量。 我尝试使用此代码获取[]:

的数量

Regex.Matches( input, "[]" ).Count

但它没有用。

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

这是您正在寻找的正则表达式:

^(\[\d+\])+#$

请参阅the demo

计数的示例代码

var myRegex = new Regex(@"^(\[\d+\])+#$");
string bracketCount = myRegex.Match(yourString).Groups[1].Count;

<强>解释

  • ^锚点断言我们位于字符串的开头
  • (开始捕获第1组
  • \[打开括号
  • \d+匹配一个或多个数字
  • \]与结束括号相匹配
  • )关闭第1组
  • +匹配此次1次或多次
  • #哈希
  • $锚点断言我们位于字符串的末尾