簡體   English   中英

正則表達式用於字符串中至少一定數量的數字

[英]Regex for at least a certain number of digits in a string

用戶提交表單時,我需要確保輸入內容至少包含最小位數。 問題是我不知道輸入將采用哪種格式。數字可能不會連續出現,並可能由字母,標點符號,空格等分隔。我不在乎其余的數字字符串。

我想用RegularExpressionValidator進行檢查,但是我不太確定如何編寫正則表達式。

我想這將類似於電話號碼正則表達式,但電話號碼至少具有某些常見格式。

以下將匹配至少包含n數字的輸入字符串:

Regex.IsMatch(input, @"(\D*\d){n}");

其中n是整數值。

簡短說明:

  • \\D*匹配零個或多個非數字字符( \\D[^0-9][^\\d]的簡寫);
  • 因此\\D*\\d匹配零個或多個非數字字符,后跟一個數字;
  • (\\D*\\d){n}分組並重復前n次。

我會這樣處理:

Regex.IsMatch(input, @"^([^0-9]*[0-9]){10}.*$");

換句話說,這將搜索10個數字,每個數字都被0個或多個字符包圍。 由於。*是貪婪的,因此任何其他數字也將由它們匹配。

無論如何,請訪問http://regexlib.com/RETester.aspx。如果沒有要測試的東西,編寫正則表達式真的很難。

為了至少有n位數字,您需要使用以下正則表達式:

(\\ D * \\ d){n,}

正則表達式(\\ D * \\ d){n}將精確匹配n個數字。

問候,卡洛。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM