2012-01-28 19 views
2

我有這個正則表達式來測試最大長度爲5的輸入。我的問題是我想排除2的單個數字。如果字符串只包含數字「2」,它應該失敗。如何在此正則表達式中排除數字2? /^([a-zA-Z,\d]){1,5}$/
從這個正則表達式中排除一定數量

13425 - 比賽
03277 - 比賽
2 - 故障。

+0

也許正則表達式不是正確的工具... – JJJ 2012-01-28 21:23:01

+0

要確認,「5123」應該匹配正則表達式,因爲'2'不是字符串中唯一的字符,是正確的嗎? – perfectionist 2012-01-28 21:41:14

+0

@ Perfectionsit,這是正確的。 – user1127051 2012-01-28 21:46:56

回答

4

負先行斷言可以爲你

/^(?!2$)([a-zA-Z,\d]){1,5}$/ 
+1

+1這是正確的。我撤回我的(不正確)答案。 – perfectionist 2012-01-28 21:37:19

+0

謝謝你們..我在發帖前試圖搜索它。從來沒有想過這個:) – user1127051 2012-01-28 21:39:45

-1

我有同樣的ISSU做到這一點,我需要五個degit匹配所有的號碼除了那些:

    1. 從47893到47899

      23030,22060,21037和21050

    1. 在有五個degit匹配所有的號: ^\\d{5}$

      要排除號碼47893至47899: `(^ 4789 [3-9] $)`

      3-?!排除其它數: ?!(23030|22060|21037|21050)
  • - >最終的圖案:(?!((^4789[3-9]$)|23030|22060|21037|21050))^\\d{5}$