Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 伦敦邮政编码正则表达式验证_Regex_Validation - Fatal编程技术网

Regex 伦敦邮政编码正则表达式验证

Regex 伦敦邮政编码正则表达式验证,regex,validation,Regex,Validation,我使用下面的正则表达式语法来验证RSForm中的英国邮政编码!赞成者: ^(((([a-pr-UUYZA-pr-UUYZA-pr-UUYZA-pr-UUYZA-pr-UUYZA-pr-pr------------------------PRUYZ-UUUYYYUUUUYYYYYYYYZA-pr-UUUYYYZZZA-UUYZA-UUYZA------pr----pr-pr-pr---pr-------------------pr-------pr-------------------------

我使用下面的正则表达式语法来验证RSForm中的英国邮政编码!赞成者:

^(((([a-pr-UUYZA-pr-UUYZA-pr-UUYZA-pr-UUYZA-pr-UUYZA-pr-pr------------------------PRUYZ-UUUYYYUUUUYYYYYYYYZA-pr-UUUYYYZZZA-UUYZA-UUYZA------pr----pr-pr-pr---pr-------------------pr-------pr----------------------------pr-------------UUUUUUUUUUUUUUUUYZ---------)$

验证工作正常,但我只需要允许伦敦境内的邮政编码

以下是允许使用的邮政编码: WC、EC、E1-E20、N1-N22、NW1-NW11、SE1-SE28、SW1-SW20、W1-14、HA0-9、EN1-8


是否有只验证伦敦邮政编码的正则表达式,如果没有,我如何在此之后运行单独的验证并检查邮政编码是否为上述之一。

这应该只匹配您的匹配代码,假设它们是一个独立的字符串-否则您可能希望使用word boundries
\b
而不是锚定
^$
。我不认为有太多可能的优化,只是非常严格地匹配所有可能的代码:

^(?:[WE]C|(?:E|SW)(?:[1-9]|1[0-9]|[12]0)|N(?:[1-9]|1[0-9]|2[0-2])|NW(?:[1-9]|1[01])|SE(?:[1-9]|1[0-9]|2[0-8])|W(?:[1-9]|1[0-4])|HA[0-9]|EN[1-8])$
下面是一个带有正面匹配和一些负面示例的演示:

然而,在阅读了更多关于这个主题的文章之后,这篇文章可能比你最初的文章要深刻得多。我找到了这个带有伦敦邮政编码的网站,并制定了一个解决方案,该解决方案限制了特定于伦敦的前3或4位数字,然后使用了初始邮政编码regex中的最后一部分:

(?i)^((?:EC(?:[1234][AMNPRV]|[124]Y)|WC(?:[12][ABEHNR]|1[VX])|(?:E|SW)(?:[0-9]|1[0-9]|[12]0)|N(?:[1-9]|1[0-9]|2[0-2])|NW(?:[1-9]|1[01])|SE(?:[1-9]|1[0-9]|2[0-8])|W(?:[1-9]|1[0-4])|HA[0-9]|EN[1-8]|E1W) {0,}[0-9][ABD-HJLNP-UW-Z]{2})$
还有一个演示:

无法匹配这些情况:
E1-E20、N1-N22、NW1-NW11、SE1-SE28、SW1-SW20、W1-14、HA0-9、EN1-8
@noob Imho
E1-E20
表示
E1
E2
E3
<代码>E20等等,你可以在这里看到:哦!我不知道。我只是遵守OP的规范。谢谢你让我知道。我已经尝试了第二个正则表达式,它似乎做了验证,但它不允许以小写输入邮政编码。例如,它接受E1 2YQ,但不接受E1 2YQ。理想的做法是验证以大写和小写形式输入的邮政编码,以及是否有空格。同样,它也不适用于E1W 2YQ。@Sami如果小写邮政编码实际上被认为是有效的(这在您的问题和我找到的任何进一步信息中都不清楚),您可以使用不区分大小写的修饰符(i)运行正则表达式