Apa itu Regex ?

Regular Expression (regex) adalah kombinasi karakter yang digunakan oleh regex engine sebagai pola untuk mencari/mengganti kata/kumpulan kata dalam sebuah teks.

Contoh

Misalkan kita membuat sebuah file emails.txt di Ubuntu 20.04 :

home>> vi emails.txt

home>> cat emails.txt

sianu@anu.com
testing@gmail.com
apakah@gmail
testing

Lalu kita coba cari kata-kata di dalam file tersebut dengan memakai regular expression :
home>> cat emails.txt | grep @anu.com
sianu@anu.com

home>> cat emails.txt | grep @
sianu@anu.com
testing@gmail.com
apakah@gmail

home>> cat emails.txt | grep testing
testing@gmail.com
testing

Penjelasannya

grep adalah salah satu perintah di Linux yang menggunakan regular expression.

@anu, @, testing adalah regular expression.

emails.txt adalah nama file yang ingin kita cari kata-kata di dalamnya.


Jadi perintah diatas, masing-masing artinya :

  1. grep @anu.com emails.txt –> Kita ingin mencari baris yang mengandung kata @anu.com.
  2. grep @ emails.txt –> Kita ingin mencari baris yang mengandung kata @.
  3. grep testing emails.txt –> Kita ingin mencari baris yang mengandung kata testing.
Sederhana kan ?

Iya, contoh diatas sederhana, mencari kata dengan inputan kata juga. Akan tetapi Regular Expression sebenarnya lebih powerful dibandingkan hanya mencari kata dengan kata saja. Ada karakter-karakter khusus yang bisa ditambahkan untuk memudahkan pencarian kata.

Misalnya :

  1. karakter + –> digunakan untuk mencocokkan perulangan karakter sebanyak mungkin.
  2. karakter {m,n} –> digunakan untuk mencocokkan jumlah karakter minimal m buah, dan maksimal n buah.
  3. karakter […] –> digunakan untuk mencocokkan salah satu saja dari karakter dalam kurung siku.
  4. banyak lagi karakter khusus yang merepresentasikan fungsi yang berbeda.

Misalnya contoh regex yang agak kompleks :

\b[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}\b

yang biasanya digunakan untuk validasi alamat email sederhana.

Sebelum ada regex, kita akan melakukan validasi email dengan banyak sintaks if.

Tapi dengan regex, cukup dengan menginputkan pola email yang kita inginkan, kita akan bisa melakukan validasi email, karena sifat regex yang universal untuk kombinasi karakter.

Regex diadopsi untuk menjadi parser yang powerful untuk pemrosesan teks. Daripada membuat algoritma tersendiri untuk melakukan parsing teks, lebih baik menggunakan fungsi umum dari regex ini.

Jadi kesimpulannya kenapa kita perlu tahu Regex ini ?

  1. Karena regex sebagai alat/tools yang powerful untuk cari, parsing, dan replace text.
  2. Standar text processing tools yang digunakan di banyak bahasa pemrograman.
  3. Terintegrasi dengan Unix tools (grep, egrep, sed, awk), yang memudahkan kita dalam pekerjaan sehari-hari ketika melakukan debugging dan processing text.