2016-08-02 17 views
0

私は地域、地区、セクターに英国の郵便番号を分けようとしています。例えば英国の部分を解析して抽出する郵便番号

のために私は私が

  1. B75 5TW
  2. B75 5
  3. B75
  4. B7
として出力したい5TW

B75などの郵便番号を持っている場合

私はこの正規表現を試しましたが、期待どおりに動作しません。

^([A-Z]{1,2})([0-9][0-9A-Z]?)\s*([0-9])([A-Z]{2})$ 

var regex = new Regex(@"^([A-Z]{1,2})([0-9][0-9A-Z]?)\s*([0-9])([A-Z]{2})$"); 
var matches = regex.Match(postcode); 

Output should be like below 
    matches.groups[0] - B75 5TW 
    matches.groups[1] - B75 5 
    ...etc 

ご迷惑をおかけして申し訳ございません。ありがとう。

+1

ようなあなたのグループは、(((([AZ] {1,2})[0-9] [0-9A-Z]^'試してみてくださいあなたはネストすることが機能するためには?)\ s * [0-9])[AZ] {2})$ ' – juharr

+0

wow thanks @juharrうまくいくようです。しかし、1つの小さな問題の最初の2つの項目は同じ値です。 matches.groups [0] - B75 5TW matches.groups [1] - B75 5TW – Lamps

+0

ええ、グループ0は常にすべてのものなので、無視して一番外側の括弧を削除することができます。 – juharr

答えて

1

ので

^((([A-Z]{1,2})[0-9][0-9A-Z]?)\s*[0-9])[A-Z]{2}$ 
関連する問題