不区分大小写的英国邮政编码正则表达式

时间:2013-07-03 15:29:47

标签: .net regex validation case-insensitive postal-code

我有以下正则表达式来匹配英国邮政编码:

  

GIR []?0AA |((AB | AL | B | BA | BB | BD | BH | BL | BN | BR | BS | BT | CA | CB | CF | CH | CM | CO | CR | CT |简历| CW | DA | DD | DE | DG | DH | DL | DN | DT | DY | E | EC | EH | EN | EX | FK |风云| G | GL | GY | GU | HA | HD | HG | HP | HR | HS | HU | HX | IG | IM | IP | IV | JE | KA | KT | KW | KY | L | LA | LD | LE | LL | LN | LS | LU | M | ME | MK | ML | N | NE | NG | NN | NP | NR | NW | OL | OX | PA | PE | PH | PL | PO | PR | RG | RH | RM | S | SA | SE | SG | SK | SL | SM | SN | SO | SP | SR | SS | ST | SW | SY | TA | TD | TF | TN | TQ | TR | TS | TW | UB | W | WA | WC | WD | WF | WN | WR | WS | WV | YO | ZE)(\ d [\ dA-Z]?[]?\ d [ABD-HJLN-UW-Z] {2}))| BFPO []?\ d {1,4} / GI

根据我的理解,我可以将/gi添加到最后以使其与大小写不匹配,但这似乎根本不起作用?谁能明白为什么?

3 个答案:

答案 0 :(得分:3)

在将邮政编码字符串放入正则表达式之前,只需大写字母 另请查看此question on UK postcodes

答案 1 :(得分:2)

如果您正在使用.Net,那么在构建时可能会使用RegexOptions.IgnoreCase?取自here

该页面还有this expression的链接,可能值得尝试。

答案 2 :(得分:1)

根据您使用的是哪一个,使用/gi可能不起作用,而在表达式的开头(?i)将使表达式不区分大小写。

所以,你要使用:

(?i)GIR[ ]?0AA|((AB|AL|B|BA|BB|BD|BH|BL|BN|BR|BS|BT|CA|CB|CF|CH|CM|CO|CR|CT|CV|CW|DA|DD|DE|DG|DH|DL|DN|DT|DY|E|EC|EH|EN|EX|FK|FY|G|GL|GY|GU|HA|HD|HG|HP|HR|HS|HU|HX|IG|IM|IP|IV|JE|KA|KT|KW|KY|L|LA|LD|LE|LL|LN|LS|LU|M|ME|MK|ML|N|NE|NG|NN|NP|NR|NW|OL|OX|PA|PE|PH|PL|PO|PR|RG|RH|RM|S|SA|SE|SG|SK|SL|SM|SN|SO|SP|SR|SS|ST|SW|SY|TA|TD|TF|TN|TQ|TR|TS|TW|UB|W|WA|WC|WD|WF|WN|WR|WS|WV|YO|ZE)(\d[\dA-Z]?[ ]?\d[ABD-HJLN-UW-Z]{2}))|BFPO[ ]?\d{1,4}