KW邮政编码的正则表达式

时间:2012-02-23 12:16:18

标签: php regex drupal drupal-7 ubercart

我正在尝试为我的发货部分制作不区分大小写的正则表达式,该表达式捕获除KW9之外的KW部分中的所有邮政编码。我有以下正则表达式捕获所有KW邮政编码,但如何为此添加KW9的例外?

^[kK][wW][1-9]\s?[1-9][a-zA-Z]{2}$

有什么想法吗?

修改

我复制并粘贴了错误的reg ex,这是实际的reg ex:

^[kK][wW][1-9]{2}\s?[1-9][a-zA-Z]{2}$

KW区域中的有效邮政编码是KW 1-9和KW 10-17(但[kK] [wW] [1-9] {2}将验证它们)并且格式为(所有不区分大小写)kw ,1/2位数,可选空格,单个数字和2个字母。有效邮政编码为KW1 1AA,无效邮政编码为KW9 1AA

3 个答案:

答案 0 :(得分:1)

使用这个简单的。

   /^KW[1-8][0-9]?\s?[1-9][A-Z]{2}$/i

添加/i会使其不区分大小写。

这符合KW1-8和KW10-89。它与KW9或KW90-99不匹配

答案 1 :(得分:0)

试试这个:

^(KW|Kw|kW)9\s?[1-9][a-zA-Z]{2}$

这应该捕获所有KW9不区分大小写,除了kw9(小写)

答案 2 :(得分:0)

试试这个:

/^kw([1-8]|1[0-7])\s?[1-9][a-z]{2}$/i

我启用了“不区分大小写”选项。 对于1-8 + 10-17,我刚刚使用了(... | ...)语法。如果您不需要捕获此数字,则可以使用“非捕获”前缀:

/^kw(?:[1-8]|1[0-7])\s?[1-9][a-z]{2}$/i