應該驗證這樣的事情正則表達式來驗證用逗號分隔的數字或破折號
12,14,15,18-20,23,50-130
我想這一點:
^(?:\\d[,] | \\d[-])$ // or ^(?:\\d[,] | \\d[-] *)$ ??
編輯 應該爲
12, 15
11,13, 14,18, 51-52
工作
它不適用於
w,12
12,15d
14,,18
14--20
12,12-
-12,13
,12
12,
13-,
-,13
應該驗證這樣的事情正則表達式來驗證用逗號分隔的數字或破折號
12,14,15,18-20,23,50-130
我想這一點:
^(?:\\d[,] | \\d[-])$ // or ^(?:\\d[,] | \\d[-] *)$ ??
編輯 應該爲
12, 15
11,13, 14,18, 51-52
工作
它不適用於
w,12
12,15d
14,,18
14--20
12,12-
-12,13
,12
12,
13-,
-,13
首先,使用逐字串避免雙反斜槓。然後這可能會爲你做:
@"^\s*\d+(?:-\d+)?\s*(?:,\s*\d+(?:-\d+)?\s*)*$"
這將是一個數字,可選後跟連字符號碼。然後再任意數量的,
,空白和開始模式。
我想'5465,5-45-56'應該匹配 – Anirudha
@ Fake.It.Til.U.Make.It怎麼回事?對我來說,這看起來像數字範圍的枚舉(如打印對話框中的「頁面」字段)。 –
你也可以試試這個
@"^\s*\d+(\s*[,-]\s*\d+)*\s*$"
然後你應該注意到,這允許多個連字符之間沒有逗號;) –
@ m.buettner可能..但是op從來沒有說過關於..:O – Anirudha
這就是爲什麼我不說你的解決方案是錯誤的。但是值得一提的是OP,你不覺得嗎? –
那麼,有什麼問題? – Oded
什麼不應該有效?哪裏有更多有效和無效投入的例子? – Oded
這應該驗證給定的字符串:'12,14,15,18-20,23,50-130' ;-)如果有任何這樣的問題,您不得不舉例說明您嘗試實現的規則。對於任何給定的例子(或者甚至是一組例子),可以提出一個匹配例子的規則,但是不正確,因爲沒有列出的東西沒有正確匹配。正則表達式用來表達規則,不知道這些規則,你不能創建一個好的正則表達式。 – Chris