在字符串中查找一定数量的数字的正则表达式?

Bra*_*don 4 c# regex asp.net

当用户提交表单时,我需要确保输入包含至少最小位数.问题是我不知道输入的格式是什么.数字可能不会连续,可能由字母,标点符号,空格等分开.我不关心其余的字符串.

我想用RegularExpressionValidator检查这个,但我不太清楚如何编写正则表达式.

我想这类似于电话号码正则表达式,但电话号码至少有一些常见的格式.

Bar*_*ers 12

以下内容将匹配至少包含n数字的输入字符串:

Regex.IsMatch(input, @"(\D*\d){n}");
Run Code Online (Sandbox Code Playgroud)

其中n是整数值.

一个简短的解释:

  • \D*匹配零个或多个非数字字符(\D[^0-9]或的简写[^\d]);
  • 所以\D*\d匹配零个或多个非数字字符后跟一个数字;
  • (\D*\d){n}以前的n时间组和重复.