2017-04-18 23 views
0

我正在尋找特定範圍之外的數字的正則表達式。正則表達式數字超出範圍

不接受的數字是v10,v11,v12,v13,v14,v15。我的這個正則表達式是v(1[0-5]),但是 I 不需要想要數字以外的其他6個數字。

v1 - accepted. Need regex for this 
v5 - accepted. Need regex for this 
v100 - accepted. Need regex for this 
v51 - accepted. Need regex for this 
v10...v15 - not accepted. I already have a regex for this. 

回答

1

使用錨點或邊界使匹配更嚴格。

\bv(1[0-5])\b 

^v(1[0-5])$ 

演示:https://regex101.com/r/TPkTom/1/

錨/邊界將要求精確匹配。如果沒有這些,只有部分表達必須匹配。

每更新一負先行將工作:

v(?!1[0-5]\b)\d+ 

演示:https://regex101.com/r/TPkTom/4/

或者你可以使用PCRE動詞:

\bv1[0-5]\b(*SKIP)(*FAIL)|v\d+ 

https://regex101.com/r/TPkTom/3/

+0

其實我已經澄清通過編輯問題。你可以請看看 – yregex2017

+0

@ yregex2017哦,這樣的混合。答案已更新。 – chris85

+0

你是一個天才!非常感謝。 – yregex2017