Belajar Cara Menggunakan String Regex pada Java
Assalamualakum Warahmatullahi Wabarakatuh.
Regex (Regular Expression ) adalah sebuah pattern (pola), yang dimana pola ini digunakan untuk, mencari, mengedit dan memanipulasi sebuah text dari obek yang menggunaakn class library String. Bisa juga dikatakan bahwa ,ketika kita ingin data atau nilai dari text, jadi Regex tersebut bisa digunakan untuk membuat aturan text dengan format tertentu pada sebuah aplikasi.
Contohnya jika kita membut form login, didalam form tersebut, user harus memasukan email dengan format yang benar atau valid, jika user memasuan email dengan format yang salah, maka akan terjadi error atau muncul pesan untuk memberitahukan bahwa format yang dimasukan salah.
Pada tutorial ini, kita akan belajar cara menggunakan String Regex pada pemrograman Java, pada tutorial ini kita akan membahas mengenai contoh syntax, meta karakter, kelas karakter dan batasan kecocokan karakter.
Materi lainnya yang direkomendasikan:
Pada contoh yang pertama ini, kita akan menggunakan salah satu fungsi dari class Library Regex yaitu matches(), yang digunakan untuk memcocokan apakah nilainya sesuai dengan yang didefinisikan atau tidak.
Pada tutorial ini, kita akan belajar cara menggunakan String Regex pada pemrograman Java, pada tutorial ini kita akan membahas mengenai contoh syntax, meta karakter, kelas karakter dan batasan kecocokan karakter.
Materi lainnya yang direkomendasikan:
- Cara Manipulasi String pada Java
- Mengenal Fungsi startsWith dan endsWith pada Java
- Belajar Menggunakan Fungsi split String pada Java
A.Contoh Pertama
Buka aplikasi Netbeans IDE kalian, Buat Project Baru.
Pada contoh yang pertama ini, kita akan menggunakan salah satu fungsi dari class Library Regex yaitu matches(), yang digunakan untuk memcocokan apakah nilainya sesuai dengan yang didefinisikan atau tidak.
package WILDAN_TECHNO_ART;
public class Main {
//Belajar java di wildantechnoart.net
public static void main(String args[]) {
//Mendefinisikan Variable
String Nama = "Wildan Muhammad Athoillah";
//Mencocokan nilai yang telah didefinisikan pada Variable Nama
boolean kondisi1 = Nama.matches("Wildan Muhammad Athoillah");
boolean kondisi2 = Nama.matches("Wildan M.A");
//Menampilkan Hasil
System.out.println("Kondisi Pertama : "+kondisi1);
System.out.println("Kondisi Kedua : "+kondisi2);
}
}
Demo:
B.Contoh Kedua
Dengan menggunakan Regex, kita juga dapat mengecek suatu kata kunci pada nilai didalam variabel String, dengan menggunakan fungsi Pattern.mathest() dengan parameter Regex dan input Nilai. Fungsi ini mengembalikan nila boolaean true dan false.
Demo:Dengan menggunakan Regex, kita juga dapat mengecek suatu kata kunci pada nilai didalam variabel String, dengan menggunakan fungsi Pattern.mathest() dengan parameter Regex dan input Nilai. Fungsi ini mengembalikan nila boolaean true dan false.
package WILDAN_TECHNO_ART;
import java.util.regex.Pattern;
public class Main {
//Belajar java di wildantechnoart.net
public static void main(String args[]) {
//Mendefinisikan Variable
String Kalimat1 = "Wildan Muhammad Athoillah";
String Kalimat2 = "Cianjur Jago";
//Mendefinisikan Kata Kunci yang ingin dicocokan
String kataKunci = ".*Wildan.*";
boolean kondisi1 = Pattern.matches(kataKunci, Kalimat1);
boolean kondisi2 = Pattern.matches(kataKunci, Kalimat2);
//Menampilkan Hasil
System.out.println("Kondisi Pertama : "+kondisi1);
System.out.println("Kondisi Kedua : "+kondisi2);
}
}
Coba kalian perhatikan, disana terdapat 2 variable dengan nilai yang berbeda, lalu kita membuat variable kataKunci, yang akan kita gunakan pada fungsi Pattern.matches(), untuk mengecek kata kunci "Wildan" pada kedua variable tersebut.
Untuk mencari kata kunci tersebut, pada variable kataKunci, kita dapat menggunakan simbol (.* .*) sehingga menjadi ".*Wildan.*".
C.Contoh Syntax dan Aturan-aturan pada class Regex
Selain yang saya jelaskan diatas, masih banyak aturan-aturan yang bisa kalian gunakan pada Regex, dengan menggunakan karakter kelas, meta dan batasan kecocokan.
Kelas Karakter
- [ abc] = karakter a ,b atau c (kelas sederhana)
- [^abc] = kecuali karakter a ,b ,atau (negasi)
- [a-zA-Z] = karakter a sampai z huruf kecil , atau A sampai Z huruf besar ,(jarak)
- [a-z[x-y]] = karakter a sampai d ,atau m sampai p (a-xy-z : gabungan)
- [a-z0-9] = karakter a sampai z ,atau angka dari 0 sampai 9
- [a-z&&[^bc] = karakter a sampi z, kecuali untuk b dan c.
Meta Karakter
- . = tanda titik ,yang berarti karakter apa saja
- \d = angka digit apa saja:, seperti [0-9]
- \D = selain angka digit : [^0-9]
- \s = sebuah spasi pada kaarkter, seperti [ \t\n\x0B\f\r]
- \S = selain spasi pada karakter: [^\s]
- \w = huruf dan angka apa saja ,seperti [a-zA-Z_0-9]
- \W = selain angka dan huruf ,[\w]
Batasan Kecocokan Karakter
- ^ = tanda awalan
- $ = tanda akhiran
- \b = batasan kecocokan kata
- \B = batasan kecocokan selain kata
- \A = awalan untuk input text
- \G = akhir dari kecocokan sebelumnya
- \Z = akhir dari input text, kecuali final terminator jika ada
- \z = akhir dari input text
Berikut ini merupakan contoh program dan juga penjelasannya. Coba kalian perhatikan baik-baik.
package WILDAN_TECHNO_ART;
import java.util.regex.Pattern;
public class Main {
//Belajar java di wildantechnoart.net
public static void main(String[] args) {
//mendefinisikan Variable
String kalimat1 = "Wildan";
String kalimat2 = "77Android";
String kalimat3 = "Java345";
String kalimat4 = "123456";
String kalimat5 = "Belajar";
//Jika Input/Kalimat1 adalah Wildan atau wildan = true
System.out.println(Pattern.matches("[Ww]ildan", kalimat1));
//Jika nilai input di awal angka maka = false
System.out.println(Pattern.matches("^[^\\d].*", kalimat2));
//Sebaliknya Jika nilai input di awal bukan angka maka = true
System.out.println(Pattern.matches("^[^\\d].*", kalimat3));
/*
Mengecek input, jika lebih dari 2 maka = false
sebaliknya jika sesuai 2 maka = true
*/
System.out.println(Pattern.matches("[a-zA-Z][a-zA-Z]", "ai"));
System.out.println(Pattern.matches("[a-zA-Z][a-zA-Z]", "mobil"));
//Jika input nilai berupa angka digit, maka = true ,jika tidak = false
System.out.println(Pattern.matches("\\d*", kalimat4));
/*
Akan menampilkan output = true , jika kata Belajar merupakan awalan
dan akhiran dari input data nilai
*/
System.out.println(Pattern.matches("^Belajar$", kalimat5));
}
}
Demo:Wassalamualaikum Warahmatullahi Wabarakatuh.