2014-02-25 86 views
-1

我想創建一個正確的五位數字的正則表達式,應該在90000 - 96163之間的範圍內。 我創建了正好5個數字的正則表達式 @「^ \ d { 5} $「 現在我該如何確保它在90000 - 96163的範圍之間? 小於90001和超過96162的任何值都不應該起作用。正則表達式的最小值和範圍數

感謝

+0

這不是正則表達式的工作。分開'-'並測試每個數字。 – Toto

回答

2

這是用在你的語言規則的數值比較(使用<>運營商)最容易實現的。

您可以使用正則表達式做了一系列檢查,但它是乏味的實施和所有,但很好的可讀性。爲了完整起見,這裏是一個可能的模式:

9([0-5][0-9]{3}|6(0[0-9]{2}|1([0-5][0-9]|6[0-3]))) 

打散,圖案內容如下:

9      # The first digit must be a 9 
(
    [0-5][0-9]{3}  # Covering the range 90000-95999 
    | 
    6     # Matching 96xxx 
    (
     0[0-9]{2}  # Covering the range 96000-96099 
     | 
     1    # Matching 961xx 
     (
      [0-5][0-9] # Covering the range 96100-96159 
      | 
      6[0-3]  # Covering the range 96160-96163 
     ) 
    ) 
) 

請不要做,如果能夠避免它。只要考慮範圍邊界發生變化時會發生什麼情況:想象一下,您必須檢查一個值是否在7243和132843之間 - 這並不好玩。

0

數字由數字:

/(?!^90000$)(^9([0-5]\d{3}|6(0\d{2}|1([0-5]\d|6[0-2]))))$/