簡體   English   中英

長度為 4、5 或 6 的數字的正則表達式

[英]Regular expression for number with length of 4, 5 or 6

我需要一個正則表達式來驗證長度為 4、5、6 的數字

我使用^[0-9]{4}來驗證^[0-9]{4}的數量,但我不知道如何包括對 5 和 6 的驗證。

試試這個:

^[0-9]{4,6}$

{4,6} = 4 到 6 個字符(含)。

[0-9]{4,6}可以縮短為\\d{4,6}

請注意,正如所寫,彼得的解決方案將“接受” 0000 如果你想驗證1000999999之間的數字,那么這是另一個問題:-)

^[1-9][0-9]{3,5}$

例如將阻止在字符串的開頭插入0

如果您想接受 0 填充,但最多只能接受 6 的長度,以便001000有效,那么它會變得更加復雜。 如果我們使用前瞻,那么我們可以寫出類似的東西

^(?=[0-9]{4,6}$)0*[1-9][0-9]{3,}$

這首先檢查字符串是否長 4-6 (?=[0-9]{4,6}$) ,然后跳過 0s 0*並搜索非零[1-9]后跟至少 3數字[0-9]{3,} .

如果您使用的語言接受{} ,您可以使用[0-9]{4,6}

如果沒有,您將不得不使用[0-9][0-9][0-9][0-9][0-9]?[0-9]? .

要匹配獨立的 4-6 位數字,您可以使用

^\d{4,6}$             // If full string match is expected
\b\d{4,6}\b           // If no letters/digits/underscores are expected on both ends
(?<!\d)\d{4,6}(?!\d)  // If no digits are expected on both ends, but letters/_ are allowed
(^|\D)(\d{4,6})(?!\d) // Same as above, in case lookbehinds are not supported (get Group 2 value)

請參閱Regex #1 - Regex #2 - Regex #3Regex #4演示。

詳情

  • ^ - 字符串的開始
  • \\b -單詞邊界
  • (?<!\\d) - 如果當前位置的左邊有一個數字,則匹配失敗的負向后視
  • (^|\\D) - 匹配字符串開頭或非數字字符的捕獲組
  • \\d{4,6} - 四位、五位或六位數字
  • (?!\\d) - 如果當前位置右側有一個數字,則匹配失敗的負前瞻
  • $ - 字符串結尾

暫無
暫無

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

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