4

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

我尝试了 [1-9]|1[0-7] 但它与 18 中的 8 匹配,例如因为第一部分。

有任何想法吗?我不想有前导零。

编辑:

问题是我正在尝试验证英国邮政编码,例如:

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

4

1 回答 1

10

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

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

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

两个正则表达式的比较

于 2012-07-13T09:19:33.273 回答