Sudah ketemu.
Ternyata format reply gagal mkios bisa berbeda, tapi regex masih mampu mengatasinya. Contoh reply gagal:
Transaksi (simPATI ) nilai (10 ) ke (xxxxxxxxx ) adalah gagal dengan ERROR_CODE (14 ). Alasan adalah (Nomer tidak ditemukan. ).
Transaksi (simPATI ) nilai (10 ) ke (xxxxxxxxx ) adalah gagal dengan ERROR_CODE (14 ). Alasan adalah {Nomer tidak ditemukan.}.
Perhatikan keterangan pada reply pertama dimulai dengan Alasan adalah diikuti dua buah spasi dan tanda kurung biasa.
Di reply kedua hanya satu spasi dan menggunakan kurung kurawal.
Untuk mengambil keterangan yang ada di dalam kurung bisa pakai regex berikut:
Alasan adalah\s+[{(](?<keterangan>[a-zA-Z ]+)
Keterangan:
Alasan adalah\s+
berarti kita mencari expresi yang dimulai dengan kata Alasan adalah diikuti dengan satu atau lebih spasi
[{(]
berarti mencari tanda kurung pembuka yang bisa berupa kurung biasa atau kurung kurawal
(??<keterangan>[a-zA-Z ]+)
adalah keterangan yang mau kita ambil yang bisa terdiri dari huruf kecil a-z , huruf besar A-Z atau spasi
Hasil yang diperoleh adalah:
keterangan=Nomer tidak ditemukan