可能重复 Regex to validate UK Post Codes
我需要一个Regex语法,它接受帖子代码,如下面的格式
CR03JP
cr03jp
CR0 3JP
cr0 3jp
我现在拥有的是
^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)$
接受CR0 3JP
但拒绝cro3jp CR03JP
我也尝试过以下
/((GIR 0AA)|((([A-PR-UWYZ][0-9][0-9]?)|(([A-PR-UWYZ][A-HK-Y][0-9][0-9]?)|(([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY])))) [0-9][ABD-HJLNP-UW-Z]{2}))/i
如果已经回答,请指出链接
答案 0 :(得分:2)
问题是中间需要1或2个空格
^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)$
^^^
将其更改为{0,2}
,它也会接受没有空格的Postcodes。请参阅Limiting Repetition。
对于不区分大小写的匹配,还需要i
修饰符,就像您在第二个正则表达式中使用它一样。
答案 1 :(得分:0)
使用此正则表达式
^ ?(([BEGLMNSWbeglmnsw][0-9][0-9]?)|(([A-PR-UWYZa-pr-uwyz][A-HK-Ya-hk-y][0-9][0-9]?)|(([ENWenw][0-9][A-HJKSTUWa-hjkstuw])|([ENWenw][A-HK-Ya-hk-y][0-9][ABEHMNPRVWXYabehmnprvwxy])))) ?[0-9][ABD-HJLNP-UW-Zabd-hjlnp-uw-z]{2}$