2013-07-03 76 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

相關問題