Apa yang dimaksud dengan RegExp, Apa manfaat mengetahui RexExp, dan Bagaimana cara menggunakan RegExp. Tiga pertanyaan mendasar ini yang Insya Allah penulis jelaskan dalam artikel ini dengan harapan pembaca dapat memahami menggunakan RexExp.
Regular expression atau sering di singkat dengan RexExp atau RegEx adalah karakter spesial yang digunakan untuk mengenali huruf, angka, simbol atau karakter khusus yang memiliki pola tertentu. RegEx merupakan sebuah teknik mencari, mengambil, merubah, dan;atau; menampilkan kumpulan karakter yang memiliki pola atau format tertentu seperti kata, nomor hp, e-mail, alamat ip, kode HEX dan jenis kumpulan karakter lainnya.
RegEx biasanya digunakan ketika kita ingin mengolah sebuah fail berbasis teks yang berisi gabungan karakter huruf, angka, simbol dan karakter khusus. Misalnya, anda memiliki sebuah fail yang didalamnya memiliki banyak gabungan karakter, ada kata, ada angka, ada simbol dan ada nomor hp yang merupakan gabungan angka dan simbol +6285330817221, kemudian anda diminta untuk untuk mengambil semua nomor hp tersebut yang banyaknya kurang lebih lima puluh nomor. Dengan menggunakan RegEx "\+[0-9]{13}", anda bisa mendapatkan semua nomor tersebut dengan waktu yang sangat cepat tanpa harus membaca dan menyalin satu demi satu nomor-nomor tersebut.
Lebih jelasnya, perhatikan contoh dibawah ini, abaikan kata-katanya. Isi dari fail.txt :
Lorem ipsum dolor sit amet +6282330602071, consectetur adipiscing elit +6283871576645. Nulla fermentum vehicula fermentum +6281286616893. Curabitur molestie orci turpis, +6283870239357 id porttitor massa tincidunt sit amet. Nam et accumsan magna, +6281219550857 vitae suscipit dui. Aliquam sed ipsum felis +6283870815121.Output dari penggunaan RegEx "\+[0-9]{13}" di bash GNU/Linux (terminal) :
bash-4.3# grep -Eo "\+[0-9]{13}" fail.txtPenjelasan pola RegEx \+ untuk mengenali simbol + diawal nomor HP, kemudian disusul dengan [0-9] artinya setelah simbol +, akan disusul dengan angka, bisa berupa angka 0,1,2,3,4,5,6,7,8 atau 9. Sampai disitu, pola RegEx hanya akan mengenali +6 untuk itulah ditambahkan {13} setelah [0-9] yang artinya karakter angka yang harus dikenali berjumlah 13 angka.
+6282330602071
+6283871576645
+6281286616893
+6283870239357
+6281219550857
+6283870815121
Jika dilakukan tanpa RexEx maka tak ada cara lain selain membacanya satu demi satu kemudian di copy dan paste. Cara ini sudah pasti akan memakan waktu jika banyak nomor yang harus di ambil.
Sepengetahuan penulis ada tiga perintah linux yang bisa digunakan dikombinasikan dengan RexEx, perintah yang dimaksud adalah grep seperti contoh diatas, sed dan awk. Contoh lain di bawah ini penulis menggunakan perintah sed.
Isi fail.txt :
Lorem ipsum dolor sit amet +6282330602071,Output dari RexEx :
consectetur adipiscing elit +6283871576645.
Nulla fermentum vehicula fermentum +6281286616893.
Curabitur molestie orci turpis, +6283870239357 id porttitor massa tincidunt sit amet.
Nam et accumsan magna, +6281219550857 vitae suscipit dui.
Aliquam sed ipsum felis +6283870815121.
bash-4.3# sed -r 's/[a-zA-Z .,]{1,}(\+[0-9]{13}).*/\1/' fail.txtPenjelasan pola RegEx [a-zA-Z .,] digunakan untuk mengenali semua karakter huruf dan simbol yang ada dalam fail. Untuk membuatnya mengenali kalimat, maka ditambahkan {1,} yang artinya kenali setiap karakter huruf minimal 1 karakter karena biasanya . dan , hanya 1 karakter. RegEx [a-zA-Z .,]{1,} digunakan sebagai pola untuk mengenali kalimat sebelum nomor hp (pada contoh diatas hasil dari RegEx ini tidak ditampilkan) kemudian RegEx (\+[0-9]{13}) digunakan untuk mengenali nomor hp dan menyimpannya ke dalam variabel \1 untuk kemudian ditempilkan, dan yang terakhir RegEx .* untuk mengenali setiap karakter setelah nomor hp (hasil dari RegEx ini tidak ditampilkan).
+6282330602071
+6283871576645
+6281286616893
+6283870239357
+6281219550857
+6283870815121
RegEx untuk e-mail com, co.id, dan ac.id : [a-z0-9._-]{4,}@[a-z]{4,}\.[ac][oc][m.][i]?[d]?
RegEx untuk alamat IP : ([0-9]{1,3}\.){3}[0-9]{1,3}
Referensi :
sed, a stream editor manual
GNU Grep 3.0 manual
RegExrv2.1 TestDrive

0 komentar :
Posting Komentar