Belajar Membuat Regex Dengan Rubular

Hi,

Pada tutorial kali ini saya akan menjelaskan sedikit tentang Belajar Membuat Regex Dengan Rubular. Perlu kawan-kawan ketahui bahwa penggunaan regex ini tidak terbatas pada squid proxy saja. Regex juga banyak digunakan seperti squid, MySQL dll.

Apa itu Regex

Regular Expression (REGEX) adalah konstruksi bahasa untuk mencocokkan teks berdasarkan pola tertentu, terutama untuk kasus-kasus kompleks. Contoh misalkan mencari teks berawalan karakter tertentu, memiliki jumlah perulangan dari suatu teks, dan lain sebagainya.

Bagaimana Cara membuat Regex

Mungkin untuk kawan-kawan yang sudah expert di bidang ini tentunya sangat mudah membuat regex. Tapi ada sebagian yang masih menggunakan website-website yang dapat membantu membuat regex. Sebut saja Rubular atau RegExr. Dan pada contoh kali ini saya akan menggunakan Rubular.

Membuat Regex sederhana untuk Squid Proxy

Pada contoh kali ini saya akan menjelaskan membuat regex untuk squid proxy. Kita mulai dari yang mudah-mudah saja yaitu kita akan mencoba membuat regex untuk situs permainan anak-anak www.friv.com. Pertama kita ambil dulu konten dari log. Untuk kawan-kawan yang sudah bisa menggunakan squid silahkan memakai tool Putty. Lalu kita ketikkan perintah seperti ini

Seperti gambar di atas, konten yang terdapat dalam situs www.friv.com adalah sebagai berikut

Bisa kita lihat di sini terdapat beberapa konten dalam web tersebut. Tugas kita selanjutnya adalah memilah konten yang akan kita cache dalam hal ini adalah loading screen dari web friv. Bisa kita temukan di dalam konten loading screen dengan mime shockwave-flash (swf).

Kenapa kontennya musti di pilah? karena ada beberapa type mime yang tidak boleh atau tidak aman untuk di cache, seperti html atau php, dan ada konten yang sudah bisa secara default di cache oleh squid seperti jpg, gif, ico, js. OK mari kita lanjutkan membuat regex untuk di tempatkan di squid conf.

Menggunakan Rubular

Selanjutkan setelah memilah konten yang harus kita cache, kita buka dulu website rubular lalu letakkan url konten dengan mime swf ke dalam box You Text String.

lalu sekali lagi copy url tersebut ke box Your regular expression

Cek Matched URL di Rubular

Setelah url tersebut berhasil di paste, akan muncul notif di sebelah kanan yaitu Forward slashes must be escaped. Yang artinya kita harus menutup bagian-bagian di url tersebut yang terdapat string “/” slashes atau garis miring dengan back slash “\”.

Setelah semua sudah selesai di letakkan string back slash, cek lagi notif box di sebelah kanan, dari gambar dapat kawan-kawan lihat notif masih no match yang artinya regex yang kita buar belum sempurna. Kenapa bisa no match? mari kita analisis sedikit.

Pertama adalah konten yang mau kita ambil adalah konten dengan mime swf, sedangkan pada url di atas konten dengan ekstensi swf adalah menuJ.swf?blablabla.

Kedua, url panjang setelah string tanda tanya “?” pada url masih mengikat url dengan mime swf tadi. Solusinya harus kita pisahkan tanpa menghapus url tsb dengan tanda back slash juga hingga menjadi seperti ini

Selanjutnya kita cek notif box, regex anda sudah benar dan match denga url konten yang dimaksud. Namun lagi-lagi regex ini belum sempurna, karena kita belum menangkap konten dengan mime swf tersebut. Solusinya adalah kita memberikan tanda kurung “()” untuk mengelompokkan konten yang mau di tangkap dengan squid.

Dapat kawan-kawan lihat, urlnya sudah macth dan sudah bisa menangkap konten menuJ.swf. Namun kita masih perlu merampingkan regex tersebut karena menurut saya masih terlalu panjang, kita cari url yang tidak perlu untuk kemudian di ringkas.

Dalam url di atas yang menurut saya tidak perlu yaitu url setelah string “?”. Tapi bagaimana cara untuk di ringkas tanpa harus di hapus? kita bisa menggunakan opsi “.*” untuk menggantikan url yang terlalu panjang tersebut, seperti pada gambar di bawah ini.

Setelah semua ok, hasil akhir yang bisa kita dapat dari regex ini adalah

regex ini lah yang bisa anda input ke dalam squid.conf dan melakukan cache. Untuk penempatan di squid conf dan refresh_patternnya saya akan bahas di artikel selanjutnya.

Bila kawan-kawan bingung bisa menanyakan di komentar, inbox fb atau dengan mengirim email. Akhir kata dari saya, semoga bermanfaat.

3 Comments

  1. silamo November 4, 2017
  2. Mas prisma November 4, 2017
    • Muhammad Ade Tri Saputra November 4, 2017

Leave a Reply