有人能告诉我如何将1-17之间的数字与正则表达式匹配:
我试过[1-9] | 1 [0-7],但是由于第一部分,它在18中与8匹配。
有什么想法吗?我不想拥有前导零。
编辑:
问题是我试图验证英国邮政编码,比如开始:
KW1-17(它可能是KW1,KW2到KW17)......而这只是外在部分。邮政编码可能是KW15 1BM或KW151BM,所以我不能只使用锚来匹配整个字符串...它变得更复杂。
答案 0 :(得分:10)
你需要在正则表达式周围放置锚点,否则它将匹配子串:
^(?:[2-9]|1[0-7]?)$
我也冒昧地让你的正则表达式更有效率: