regex para código postal

Posible duplicado:
¿Cuál es el último código postal y zip regex?

Necesito Regex, que puede satisfacer mis tres condiciones para el código postal. P.ej-

  1. 12345
  2. 12345-6789
  3. 12345 1234

Cualquier sugerencia y sugerencias sería muy apreciada. Gracias !

^\d{5}(?:[-\s]\d{4})?$ 
  • ^ = Inicio de la cadena.
  • \d{5} = Match 5 dígitos (para la condición 1, 2, 3)
  • (?:…) = Agrupación
  • [-\s] = Coincide con un espacio (para la condición 3) o un guión (para la condición 2)
  • \d{4} = Match 4 dígitos (para las condiciones 2, 3)
  • …? = El patrón antes de que sea opcional (para la condición 1)
  • $ = Fin de la cadena.