Regular Expression - Pendahuluan
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 :
- grep @anu.com emails.txt –> Kita ingin mencari baris yang mengandung kata @anu.com.
- grep @ emails.txt –> Kita ingin mencari baris yang mengandung kata @.
- 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 :
- karakter + –> digunakan untuk mencocokkan perulangan karakter sebanyak mungkin.
- karakter {m,n} –> digunakan untuk mencocokkan jumlah karakter minimal m buah, dan maksimal n buah.
- karakter […] –> digunakan untuk mencocokkan salah satu saja dari karakter dalam kurung siku.
- 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 ?
- Karena regex sebagai alat/tools yang powerful untuk cari, parsing, dan replace text.
- Standar text processing tools yang digunakan di banyak bahasa pemrograman.
- Terintegrasi dengan Unix tools (grep, egrep, sed, awk), yang memudahkan kita dalam pekerjaan sehari-hari ketika melakukan debugging dan processing text.