2011-12-28 12 views
0

に私は2つのグループVB.NET正規表現マッチ5と10文字の郵便番号は、1グループ

1. 12345 
2. -1234 
で私の郵便番号

12345-1234 

と一致し、このコード

(\d{5})([\-]\d{4})?\s* 

を使用しています

1グループの12345(5 char zip)と12345-1234(10 char zip)の両方に一致する必要があります。それは可能ですか?

EDIT:

(\d{5}-\d{4}|\d{5}) 

(vcsjonesのおかげで)元の質問を満たします。

は、しかし、それは不正な形式の郵便番号の場合にのみ12345を取得していない(例えば12345から123)

はそれをする方法はありますか?

答えて

3

あなたはこの1つを試してみることができます。

(\d{5}-\d{4}|\d{5}) 

編集:

それは不正な形式の郵便番号の場合にのみ12345を取得していないが

(例えば12345から123を。)

本当ですか?これにより一致が生成されます:

Dim zip5 As String = "12345" 
Dim zip9 As String = "12345-6789" 
Dim partialZip9 = "12345-33" 
Dim regex As New Regex("(\d{5}-\d{4}|\d{5})") 
Dim zip5Match = regex.Match(zip5).Groups(0).Value 'Produces 12345 
Dim zip9Match = regex.Match(zip9).Groups(0).Value 'Produces 12345-6789 
Dim partialZip9Match = regex.Match(partialZip9).Groups(0).Value 'Produces 12345 
+0

編集:それは動作します。しかし、不正な形式の郵便番号12345-123では動作しません。その場合、最初の5桁を取得する方法はありますか? – Theveloper

+0

@Theveloperそれは私のためにregexhero.netで動作するようです。正規表現を使って完全なコードを投稿することはできますか? – vcsjones

+0

これはちょうど12345で動作します! (混乱して申し訳ありません)しかし、私は元の質問を正しく定式化しませんでした。郵便番号が正しくフォーマットされていない場合12345-12または12345-123、一致する方法はありますか12345 – Theveloper

関連する問題