Saya tahu ini mungkin jelas bagi kebanyakan orang yang sering menggunakan RegEx, tetapi jika ada pembaca yang baru mengenal RegEx, saya pikir saya harus menunjukkan pengamatan yang saya buat yang berguna untuk salah satu proyek saya.
Dalam jawaban sebelumnya dari @kennytm:
^\d{5}(?:[-\s]\d{4})?$
…? = Pola sebelumnya adalah opsional (untuk kondisi 1)
Jika Anda ingin mengizinkan kode pos standar 5 digit dan +4, ini adalah contoh yang bagus.
Untuk hanya mencocokkan kode pos dalam format 'Zip + 4' AS seperti yang perlu saya lakukan (hanya kondisi 2 dan 3), cukup hapus yang terakhir ?
sehingga akan selalu cocok dengan kelompok 5 karakter terakhir.
Alat yang berguna yang saya rekomendasikan untuk bermain-main dengan RegEx ditautkan di bawah ini:
https://regexr.com/
Saya sering menggunakan alat ini ketika saya menemukan RegEx yang melakukan sesuatu yang mirip dengan apa yang saya butuhkan, tetapi dapat disesuaikan sedikit lebih baik. Ini juga memiliki menu referensi RegEx bagus dan antarmuka informatif yang membuat Anda tetap sadar tentang bagaimana perubahan Anda memengaruhi kecocokan untuk teks contoh yang Anda masukkan.
Jika saya mendapatkan sesuatu yang salah atau melewatkan bagian informasi penting, mohon koreksi saya.
\d{5}([ \-]\d{4})?
.