^d{5}(?:[-s]d{4})?$
^
= Start of the string.
d{5}
= Match 5 digits (for condition 1, 2, 3)
(?:…)
= Grouping
[-s]
= Match a space (for condition 3) or a hyphen (for condition 2)
d{4}
= Match 4 digits (for condition 2, 3)
…?
= The pattern before it is optional (for condition 1)
$
= End of the string.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…