3 回答

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊
最簡(jiǎn)單的方法是將字符串解析為數(shù)字,然后尋找該數(shù)字是否在適當(dāng)?shù)姆秶鷥?nèi)。
要使用純正則表達(dá)式執(zhí)行此操作,您需要識(shí)別模式并將其寫出:
^(0?[0-9]{1,2}|1[0-7][0-9]|180)$
這有三種選擇:一種用于一位數(shù)字和兩位數(shù)字(允許前導(dǎo)零),其中每個(gè)數(shù)字可以是0到9之間的任何數(shù)字。另一種用于指定三位數(shù)字中的每個(gè)數(shù)字允許的數(shù)字范圍數(shù)。在這種情況下,這意味著第一個(gè)數(shù)字需要為1,第二個(gè)數(shù)字在0到7之間,最后一個(gè)可以為任意數(shù)字。第三種選擇是針對(duì)數(shù)字180,它與其他位置的模式不太匹配。
更直接的方法可能是
^(0{0,2}[0-9]|0?[1-9][0-9]|1[0-7][0-9]|180)$
只是針對(duì)可能存在的每一個(gè)棘手的數(shù)字范圍進(jìn)行輪換。

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊
我認(rèn)為正則表達(dá)式不是正確的選擇。您是否嘗試過解析值?如果必須使用正則表達(dá)式,我將匹配以\d{1,3}
解析字符串,然后驗(yàn)證代碼中的數(shù)字。

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊
我的兩分錢:
發(fā)布此問題答案的任何人都應(yīng)至少使用以下輸入來測(cè)試其正則表達(dá)式:
應(yīng)該匹配:0、00、000、5、05、005、95、095、180
不應(yīng)該匹配:0000、0095、181、190
我認(rèn)為約翰尼斯·羅素(JohannesR?ssel)所寫的東西與您將獲得的一樣好:
^(0?[0-9]{1,2}|1[0-7][0-9]|180)$
- 3 回答
- 0 關(guān)注
- 983 瀏覽
添加回答
舉報(bào)