我想寫一個正則表達式來允許數字和只有一個在中間(不能在開始或結束)HYPER 說模式:02-04
,02
是可以接受,但 模式:--
或-
或-02
或04-
或02-04-06
是不可接受的正則表達式允許數字和中間只有一個連字符
我想是這樣的,但是,這將使 - 開頭,也允許多 -
'/^[0-9 \-]+$/'
我用正則表達式不太好,所以一點解釋會很有幫助。
編輯:很抱歉打擾你再次用這個,但我需要的數字是隻有2位(123-346)應被視爲無效。
我想寫一個正則表達式來允許數字和只有一個在中間(不能在開始或結束)HYPER 說模式:02-04
,02
是可以接受,但 模式:--
或-
或-02
或04-
或02-04-06
是不可接受的正則表達式允許數字和中間只有一個連字符
我想是這樣的,但是,這將使 - 開頭,也允許多 -
'/^[0-9 \-]+$/'
我用正則表達式不太好,所以一點解釋會很有幫助。
編輯:很抱歉打擾你再次用這個,但我需要的數字是隻有2位(123-346)應被視爲無效。
嘗試這一個:
/^\d{1,2}(-\d{1,2})?$/
一個或兩個數字,隨後,任選地,(接着被一個或兩個數字的連字符)
相當容易:
^\d+(-\d+)?$
至少一種(+
)數字(\d
),然後是包含一個連字符,減號(-
)任選的基團,隨後在至少一個數位一次。
但這會使'02'無效,因爲您的表達式需要連字符 –
這與'02' –
不匹配啊,對不起;忽略了表示連字符是可選的部分。現在修復。誠然,這個要求在這個問題上有點難以理解,因爲對模式的每個口頭解釋聽起來像是需要連字符減號。 – Joey
對於僅包含該圖案的字符串下面應該工作
^(\d{2}-)?\d{2}$
一組2位數字後跟減號結尾的一組2位數字沒有減號。
和我一樣的答案,但你擊敗了我。所以我添加了一個解釋,upvoted,並刪除了我自己的。 – slim
謝謝你的解釋@slim我需要 –
對不起,你再次遇到這個問題,但我需要的數字只有2位數(123-346)應該被認爲是無效的。 –