Selasa, 16 Juni 2015

Penggunaan Regex Dengan QRegularExpression

Kali ini saya akan mencoba menulis tentang penggunaan Regex dengan menggunakan Class QRegularExpression pada Qt. Sebelum jauh melangkah kepada penggunaan QRegularExpression. Saya akan mencoba menjelaskan sedikit tentang apa itu Regular Expression atau biasa dikenal dengan Regex. Ya yang jelas Regex itu bukan suatu genre lagu.

Regex merupakan suatu fungsi yang digunakan dalam pengaturan pola pada suatu teks. Regex biasanya digunakan dalam melakukan validasi-validasi teks agar data teks yang masuk dapat terkendali dan terhindar dari Garbage In. Pengaturan pola pada Regex menggunakan notasi-notasi yang cukup bervariasi dalam penggunaannya. Kenapa kita perlu Regex? Karena untuk mempersingkat baris pada program kita dalam melakukan validasi, dengan menggunakan notasi-notasi dari Regex, kita bisa menghemat banyak baris dalam melakukan validasi pada program kita.

Dalam tulisan ini saya tidak membahas detil tentang notasi-notasi Regex, saya langsung saja menjelaskan bagaimana cara menggunakan Class QRegularExpression pada Qt. Berikut saya akan mulai menjelaskannya dengan diawali dari code program di bawah ini.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#include <QCoreApplication>
#include <QRegularExpression>
#include <QDebug>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QRegularExpression regExp("[^\w]+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$");
    QString email = "freakandstein@gmail.com";
    if(regExp.match(email).hasMatch()){
        qDebug() << "Match";
    }else{
        qDebug() << "Not Match";
    }
    return a.exec();
}

Code program di atas melakukan contoh validasi format email dengan menggunakan Class QRegularExpression. Pada baris ke 7 terdapat pattern atau pola Regular Expresssion dengan menggunakan notasi-notasi yang akan melakukan validasi teks apakah itu email atau bukan. Untuk pattern Regex email tidak selamanya harus seperti pada baris ke 7 di atas, itu semua tergantung logic dan pengetahuan tentang notasi dari si pembuat pattern, bisa lebih singkat atau bisa lebih panjang.

Pada baris ke 8 kita mencoba email dengan nama "freakandstein@gmail.com" apakah valid atau tidak sebagai email. Lalu pada baris ke 9, email akan dicocokan dengan pola yang telah dibuat dengan menggunakan fungsi match() dan hasMatch(). Hasil dari baris ke 9 akan mengembalikan nilai True jika memang email tersebut terdapat kecocokan dengan pola atau akan mengembalikan nilai False jika memang email tersebut tidak ada kecocokan dengan pola.

Pada code program di atas saat dijalankan, maka akan menghasilkan "Match". Berikut adalah gambar dari contoh programnya.

Output Program Regex
Fungsi yang digunakan pada Class QRegularExpression untuk program di atas adalah fungsi match() dan hasMatch(). Sebenarnya masih ada beberapa lagi fungsi yang ada pada Class QRegularExpression. Tetapi untuk kali ini saya hanya menggunakan 2 fungsi tersebut, untuk selebihnya dapat dicari lagi lebih dalam pada documentation yang telah disediakan.

Untuk sekedar tambahan, saat ini banyak website yang menyediakan sarana untuk belajar Regex secara langsung. Kita bisa langsung mencoba membuat pola dengan notasi-notasi dan kita bisa langsung mengujinya dengan teks inputannya. Contohnya adalah https://regex101.com/, menurut saya website tersebut cukup rekomen bagi yang ingin belajar Regex. Di website tersebut selain kita bisa menguji pola yang kita telah buat secara langsung, di sana juga terdapat penjelasan yang cukup komprehensif untuk setiap notasi-notasinya.

Sekian dari saya, semoga tulisan ini bisa bermanfaat bagi kita semua khususnya pribadi saya sendiri. Terimakasih.

Tidak ada komentar:

Posting Komentar