Php KW邮政编码的正则表达式

Php KW邮政编码的正则表达式,php,regex,drupal,drupal-7,ubercart,Php,Regex,Drupal,Drupal 7,Ubercart,我正在尝试为我的shipping部分创建一个不区分大小写的正则表达式,它捕获除KW9之外的KW部分中的所有邮政编码。我有下面的正则表达式,它捕获所有KW邮政编码,但是如何为KW9添加一个例外 ^[kK][wW][1-9]\s?[1-9][a-zA-Z]{2}$ 有什么想法吗 编辑: 我复制并粘贴了错误的注册表项,以下是实际注册表项: ^[kK][wW][1-9]{2}\s?[1-9][a-zA-Z]{2}$ KW地区的有效邮政编码为KW 1-9和KW 10-17(但[kK][wW][1-9]

我正在尝试为我的shipping部分创建一个不区分大小写的正则表达式,它捕获除KW9之外的KW部分中的所有邮政编码。我有下面的正则表达式,它捕获所有KW邮政编码,但是如何为KW9添加一个例外

^[kK][wW][1-9]\s?[1-9][a-zA-Z]{2}$
有什么想法吗

编辑:

我复制并粘贴了错误的注册表项,以下是实际注册表项:

^[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位、可选空白、一位数字和两个字母。有效的邮政编码是KW1 1AA,无效的邮政编码是KW9 1AA

请尝试以下操作:

^(KW|Kw|kW)9\s?[1-9][a-zA-Z]{2}$
这将捕获除KW9(小写)之外的所有不区分大小写的KW9。

使用这个简单的

   /^KW[1-8][0-9]?\s?[1-9][A-Z]{2}$/i
添加
/i
使其不区分大小写

这与KW1-8和KW10-89匹配。它与KW9或KW90-99不匹配,请尝试此选项:

/^kw([1-8]|1[0-7])\s?[1-9][a-z]{2}$/i
我已经启用了“不区分大小写”选项。 对于1-8+10-17,我刚刚使用了(…|…)语法。如果您不需要捕获此号码,可以使用“非捕获”前缀:


一个你想匹配的邮政编码和一个你不想匹配的邮政编码的例子会有帮助。但是,尝试将第一个
[1-9]
更改为
[1-8]
。它需要匹配除kw9之外的所有有效邮政编码,因为ubercart shipping部分就是这样接受它们的,因为它是更大注册的一部分ex@IgorKorkhov不匹配。我更新了。但是你检查了旧的PThanks@Shiplu:)我用你的做了
^[kK][wW][1-8][0-9]?\s?[1-9][a-zA-Z]{2}$
/^kw(?:[1-8]|1[0-7])\s?[1-9][a-z]{2}$/i