2014-05-13 471 views
-1

我需要表達式來檢查數字7是否小於30且大於1.這是一個示例。任何人都可以提供表達和解釋嗎?RegEx用於檢查數字是小於還是大於

+4

正則表達式可能不是接近最好的辦法... – Joel

+0

這是太多的例子複雜的問題。我有其他的解決方案,但我需要找到一個與正則表達式。 – opejanovic

+0

請描述複雜的問題,然後 - 範圍變化?爲什麼是正則表達式? –

回答

0

不要使用正則表達式,但如果你想,在這裏你去:

^(?:[2-9]|[1-2][0-9])$ 

Regular expression visualization

Debuggex Demo


說明:

此錨到開始/結束的字符串(所以我們在175中不匹配7),然後所有邏輯發生在非捕獲組中。匹配數字[2-9 ](大於1)匹配[1-2]後跟任意數字[0-9](範圍從10-29)。請注意,我使用的是[0-9]而不是\d,因爲它更符合可讀性,並且\d在技術上將與其他數字字符(阿拉伯語等)匹配。


側面說明,如果你想允許前導0(1 < 007 == 7 < 30),你可以在字符串開始後允許0+ 0的:

^0*(?:[2-9]|[1-2][0-9])$ 
0
^([2-9]|[1-2][0-9])$ 

上述表達式匹配,如果:

  • 給定的字符串是一個字符長,該字符是範圍從2到9的數字
  • 給定的字符串長兩個字符,第一個字符是1或2,第二個字符的範圍從0到9
+1

「*小於* 30」。 – Sam

+0

@Sam剛修復它。 – Khub

相關問題