2013-07-03 46 views
0

我有匹配英国的邮政编码下面的正则表达式:不区分大小写英国邮政编码正则表达式

GIR [] 0AA |((AB | AL | B | BA | BB | BD | BH | BL | BN | BR | BS | BT | CA | CB | CF | CH | CM |公司| 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 |胡| 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 |不锈钢| 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

从我理解的我可以dd /gi到底为了使它匹配大小写不敏感,但这似乎并不工作?任何人都能看到为什么

+3

什么是你的正则表达式引擎?根据你使用的是哪一个,使用'/ gi'可能不起作用,而在表达式开始处使用'(?i)'会使表达式不区分大小写。 – Jerry

+0

@Jerry .NET,这个正则表达式被送到一个Asp.net页面上的'RegularExpressionValidator'控件。 – dtsg

+0

你不需要添加'g' - 只有'i' - 但是当你说“似乎不工作“, 你什么意思? –

回答

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} 
2

如果你使用.Net也许使用RegexOptions.IgnoreCase,当你构造?取自here

该页面还有链接到this expression这可能是值得一试的。

+0

我宁愿通过表达本身来处理这一点,但感谢所有相同的 – dtsg

相关问题