SURIANI D121181316_Regular Expression (Regex)

 Aplikasi Pemanfaatan Regular Expression (Regex)

 


 

Regular Expression atau biasa disingkat regex, adalah suatu metode untuk mengenali atau mendeteksi suatu pola tertentu pada suatu string.

Dengan menggunakan regex, kita bisa mendeteksi pola string seperti email, hashtag, link dan pola-pola kompleks lainnya dengan hanya satu ekpresi saja.

Ia juga merupakan metode standar dan independen, tidak mengenal bahasa pemrograman. Kita bisa mengimplementasi regex di berbagai macam bahasa pemrograman: termasuk PHP.

Regular expressions terdiri dari dua tipe:

  • literal characters dan
  • metacharacters

Regular Expression juga menyediakan beberapa special karakter yang dapat digunakan untuk mencocokan karakter dengan pola-pola tertentu. Perlu diingat bahwa RE adalah case sensitive.

1. Wildcard

Simbol titik “.” Disebut dengan wildcard dimana tanda ini dapat cocok dengan satu karakter apapun. Contohnya jika RE ‹‹ n.p ››maka kata yang akan cocok dengan RE tersebut bisa berupa nlp, nap, nup, n3p, n0p, dst. 

2. Optionality

Dengan menggunakan symbol tanda tanya “?” untuk menandakan bahwa regular expression yang diberikan sebelum symbol tersebut bersifat optional. Contohnya adalah RE ‹‹ colou?r ›› maka kata yang dapat cocok dengan pola tersebut adalah colour dan color (dimana u bersifat opsional). Sama juga dengan RE ‹‹ e-?mail ›› dimana kata yang dapat cocok adalah e-mail dan email.

3. Repeatability
Ada dua jenis perulangan yang dapat digunakan, yaitu dengan menggunakan tanda “+” dan “*”. Tanda “+” menandakan bahwa RE yang diberikan sebelum symbol tersebut dapat diulang. Sebagai contoh ‹‹ coo+l ›› dapat cocok dengan kata cool, coool, coool, dst. Contoh lainnya adalah dalam RE ‹‹ .+ed ›› sama dengan mencari kata yang berakhiran dengan kata “ed”. Sedangkan tanda “*” menandakan bahwa RE yang diberikan sebelum symbol tersebut bersifat opsional atau dapat berulang. Jika menggunakan contoh RE diatas yaitu ‹‹ coo*l ›› maka kata yang dapat cocok adalah kata col, cool, coool, dst. Contoh lainnya adalah kata ‹‹ .* oo .* ›› berarti mencari semua kata yang terdiri dari minimal 2 karakter o.

4. Choice
Dengan menggunakan symbol kurung siku buka dan tutup “[ ]” maka pola kata yang akan cocok akan terbatas pada RE yang akan diberikan didalam symbol tersebut. Contohnya adalah ‹‹n[a,l,o]p›› dimana berarti kata yang dapat cocok adalah nap, nlp, dan nop saja.

5. Range
Tanda “-“ digunakan untuk menunjukkan suatu range, misalnya kata yang dapat cocok dari RE ‹‹n[a-z]p›› adalah semua kombinasi dari huruf a-z (nap, nbp, ncp, dst.). Contoh RE untuk mencari kata dimana kata tersebut dimulai dengan huruf capital adalah: ‹‹ [A-Z][a-z]*››

6. Complementation
Tanda “^” digunakan untuk membuat makna kebalikannya (negasi). Contohnya RE ‹‹ [aiueo] ›› adalah RE untuk menghasilkan karakter vocal, tetapi jika kita menggunakan tanda tersebut menjadi ‹‹ ^[aiueo] ›› maka karakter yang dihasilkan adalah karakter lain selain a, i, u, e, o, atau dengan kata lain yaitu karakter konsonan saja.

7. Common special symbol
Tanda “^” dan “$” digunakan untuk mencocokan awalan dan akhiran dari sebuah baris di dalam file. Tanda “^” memiliki dua arti. Bila tanda tersebut digunakan menjadi sebuah awalan pada class character seperti pada nomor 6 maka tanda tersebut berarti negasi, selain itu tanda tersebut berarti menandakan awal dari sebuah baris.
Contohnya jika RE ‹‹ ^ [A-Za-z]+ ›› berarti mencari disetiap awal baris kata yang terdiri dari satu atau lebih karakter A-Z (baik huruf besar ataupun huruf kecil).

8. Other Special character

 

Manfaat Regex dalam Pemrograman:

1. Regex untuk Validasi Data

Seperti contoh kasus password tadi, regex digunakan untuk matching atau pencocokan teks.

Pertama-tama, kita harus mendefinisikan pola regex untuk data yang valid. Kemudian, kita lakukan pencocokan dengan pola tersebut.

2. Regex untuk Pencarian

Contoh penerapan regex untuk pencarian sebenarnya hampir sama dengan validasi data.

Pola regex dimasukan dalam kata kunci, lalu dicocokan dengan database atau teks.

Contoh program yang menerapkan ini adalah grep.

Program grep (globally search for a regular expression and print matching lines) biasanya kita temukan di sistem operasi Unix dan Linux, bahkan ini menjadi program yang selalu ada di setiap distro Linux.

Program grep melakukan pencarian berdasarkan pola regex yang diberikan, lalu mencetak output hasilnya.

3. Regex untuk Find and Replace

Salah satu manfaat regex yang saya suka adalah find and replace. Fitur ini membantu saya untuk mengelola teks dan konten lebih efisien.

Bayangkan saja..

Di petani kode ada ratusan konten dengan format markdown. Lalu di suatu kondisi saya ingin mengubah beberapa teks di semua konten ini.

Jika dilakukan satu-per-satu secara manual, tentu ini akan menguras banyak waktu dan tenaga.

Tapi..

Berkat regex, saya bisa melakukannya dalam hitungan detik. Cukup bikin pola pencarian dan pola untuk mengubahnya (subtitusi).

 

Contoh Applikasi dari Regex:

Deteksi Email

Untuk mendeteksi email, kita bisa melakukannya dengan 3 pola bagian:

  • pola pertama adalah username email (sebelum tanda @). Pola ini adalah semua karakter dalam set [a-zA-Z0-9_] atau kita bisa singkat dengan menggunakan meta karakter \w.
  • pola yang kedua adalah tanda @.
  • pola yang ketiga adalah domain. Domain terdiri dari dari karakter huruf kecil dan titik ([a-z.]+)

 Sehingga ketika 3 pola di atas kita rangkai, kita mendapatkan pola sebagai berikut:

 

<?php

$regex = "/[\w]+@[a-z.]+/";

 Langsung saja. Silakan buka file fungsi/deteksi-email.php lalu buat fungsi deteksiEmail sebagai berikut:

<?php

function deteksiEmail($input)
{
    $regex = "/[\w]+@[a-z.]+/";
    $timpa = "<a href='mailto:$0'>$0</a>";

    return preg_replace($regex, $timpa, $input);
}

 Lalu pada file index.php, kita bisa tambahkan teks baru sebagai berikut:

<?php
$tesk3 = "Untuk informasi lebih lanjut tentang pendidikan di Surabaya, 
anda bisa mengirimkan surel ke alamat dispendik@surabaya.go.id";

echo deteksiEmail($tesk3);

 Maka setelah dijalankan, output yang kita dapatkan adalah sebagai berikut:

Untuk informasi lebih lanjut tentang pendidikan di Surabaya, anda bisa mengirimkan surel ke alamat dispendik@surabaya.go.id.

 

sekian, terima kasih:")

 

 

Komentar

Postingan Populer