分開後,我已經創建一個正則表達式與此規則:正則表達式的百分比由逗號
- 號碼是5-100之間
- 數之間用逗號(55,70,90)
- 號碼分開在串
獨特例如:
- 10,20,50 OK
- 10,20,50號(空格)
- 10,20,50,NO(最後一個逗號)
- 10,10,20號(唯一的)
你能幫助我嗎?
分開後,我已經創建一個正則表達式與此規則:正則表達式的百分比由逗號
獨特例如:
你能幫助我嗎?
雖然有可能用正則表達式進行所有檢查,我認爲這不是對工作的工具。
我想:
^(?:[0-9]+,)*[0-9]+$
split(',', $input)
變成陣列我試過用String input =「40,50,80」; \t \t字符串圖案= 「/^[0-9,] + $ /」; \t \t Pattern p = Pattern.compile(pattern); \t \t匹配器M = p.matcher(輸入); \t \t的System.out.println(m.matches());但返回總是假的! – CeccoCQ 2012-01-03 16:01:29
+1此解決方案簡單易懂。我會改進正則表達式來使它成爲數字和逗號,如'^(?:[0-9] +,)* [0-9] + $'。 – hochl 2012-01-03 16:02:04
@ hochl,我更新了正則表達式。 – 2012-01-03 16:54:25
這不是正則表達式工作,因爲你有
爲此,您可以簡單地用String#split():
String arr[] = s.split(",");
for (int i=0; i<s.length; i++) {
// apply your rules here
}
正則表達式可以用於驗證。你假設輸入是一個有效的格式,根據OP是不是。 – 2012-01-03 16:56:04
用於解決問題10和99,或100之間1)
(?:[5-9]|[1-9][0-9]|100)(?![0-9])
號要麼是5和9之間, ,之後沒有數字。
你能告訴我們你已經嘗試什麼,以及爲什麼它已經失敗了? – leonbloy 2012-01-03 15:02:24
好吧,數字在5到100之間,數字之間用逗號分隔是可能的,但重複數字的事情遠遠超出了我認爲的正則表達式的可能性。 – hochl 2012-01-03 15:08:36
這是功課嗎?它是否必須完全作爲正則表達式來實現,還是可以使用一些Java代碼? – 2012-01-03 15:09:52