Saya memiliki regex yang saya pikir berfungsi dengan benar sampai sekarang. Saya perlu mencocokkan pada karakter opsional. Mungkin ada di sana atau tidak.
Berikut ini dua string. String teratas dicocokkan sedangkan yang lebih rendah tidak. Tidak adanya satu huruf di string bawah adalah apa yang membuatnya gagal.
Saya ingin mendapatkan satu huruf setelah 5 digit awal jika ada dan jika tidak, terus dapatkan sisa string. Surat ini bisa A-Z
.
Jika saya menghapus ([A-Z]{1}) +.*? +
dari regex, itu akan cocok dengan semua yang saya butuhkan kecuali surat itu tetapi itu agak penting.
20000 K Q511195DREWBT E00078748521
30000 K601220PLOPOH Z00054878524
Berikut adalah regex yang saya gunakan.
/^([0-9]{5})+.*? ([A-Z]{1}) +.*? +([A-Z]{1})([0-9]{3})([0-9]{3})([A-Z]{3})([A-Z]{3}) +([A-Z])[0-9]{3}([0-9]{4})([0-9]{2})([0-9]{2})/