正则表达式编号范围1-17

时间:2012-07-13 09:16:36

标签: regex numbers range

有人能告诉我如何将1-17之间的数字与正则表达式匹配:

我试过[1-9] | 1 [0-7],但是由于第一部分,它在18中与8匹配。

有什么想法吗?我不想拥有前导零。

编辑:

问题是我试图验证英国邮政编码,比如开始:

KW1-17(它可能是KW1,KW2到KW17)......而这只是外在部分。邮政编码可能是KW15 1BM或KW151BM,所以我不能只使用锚来匹配整个字符串...它变得更复杂。

1 个答案:

答案 0 :(得分:10)

你需要在正则表达式周围放置锚点,否则它将匹配子串:

^(?:[2-9]|1[0-7]?)$

我也冒昧地让你的正则表达式更有效率:

Comparison of two regexes