北米の郵便番号を検証するために使用する次の正規表現があります。
(?:(\d{5})(?:-\d{4})?)|(?:([a-zA-Z]\d[a-zA-Z]) ?(\d[a-zA-Z]\d))
参考までに、特定の位置で特定の文字を確認することに関しては、より正確になる可能性があることを理解しています.
私がやりたいのは、この同じ検証定数を使用して、郵便番号も次の形式で抽出することです。
00000
or
a0a0a0
上記の正規表現がそれに近づきます。すべてのキャプチャ グループ (ルートを除く) を連結すると、求める結果が得られます。たとえば、米国のコードはグループ 1 でキャプチャされ、カナダのコードは 2 + 3 でキャプチャされます。
これを行うより良い方法はありますか?または、すべてのサブグループを連結することが正規表現ライブラリの機能であると想定されているかもしれません。(ちなみにこれはC#.NETです)