2017-04-18 21 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