Regular expression (regex) adalah konstruksi yang sangat powerful dalam mengolah teks. Berangkat dari popularitas penggunaannya di PERL, regex ini sekarang umum dijumpai di hampir semua bahasa pemrograman yang populer termasuk Java.
Jadi, bagaimana kita menggunakannya di Java ?
Mudah, ikuti saja tips berikut ini ;)
Mencocokkan suatu pola teks di dalam objek bertipe StringUntuk mencocokkan suatu pola teks, kita gunakan metode matches() dari String object. Sintaksnya adalah sebagai berikut:
boolean java.lang.String.matches(String regex)Parameter yang digunakan adalah suatu pola atau pattern - yang merupakan suatu objek String - dan method ini mengembalikan nilai boolean true jika pola yang dibandingkan cocok. Begitu juga sebaliknya, akan mengembalikan nilai false jika pola yang dibandingkan dengan teks tidak cocok.
Contoh 1:
if(textToBeMatched.matches("[a-z A-Z]+"))
System.out.println("Teks cocok dengan sederetan karakter alfabet");
Contoh 2:
public class RegexTest {
public static void testPhoneNumber(String phoneNumber)
{
String phoneNumberPattern = "^\\+{0,1}[\\d]+[-\\d]+\\d$";
if(phoneNumber.matches(phoneNumberPattern))
System.out.println(phoneNumber + " adalah pola nomor telepon !");
else
System.out.println(phoneNumber + " bukan merupakan pola nomor telepon yang valid !");
}
public static void main(String[] args)
{
testPhoneNumber("+6221-3011-9353"); //output adalah nomor telepon yang benar
testPhoneNumber("-6221-3011-9353"); //output adalah nomor telepon yang salah
}
}
Mengganti teks yang cocok dengan suatu polaUntuk mengganti suatu teks yang cocok dengan suatu pola kita dapat menggunakan dua class dari package
java.util, yaitu class
Pattern dan Matcher.
Pertama, kita menginisialisasi pola dengan method
compile() dari class
Pattern. Method ini sekaligus akan mengembalikan satu objek Pattern. Kita kemudian dapat memberikan teks yang akan diolah ke method
matcher() yang kembali akan membuat objek
Matcher. Sekarang kita tinggal memanipulasi teks dalam objek tersebut. Caranya adalah dengan menggunakan method
replaceAll() method dari objek
Matcher.
Contoh:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexReplacementTest {
public static String censoredPhoneNumber(String phoneNumber)
{
String phonePattern = "(\\+{0,1}[\\d]+[-\\d]+\\d).*";
Pattern pattern = Pattern.compile(phonePattern);
Matcher matcher = pattern.matcher(phoneNumber);
return matcher.replaceAll("*sensor*");
}
public static void main(String[] args)
{
String phoneNo = "Nomor telepon saya adalah +6221-3011-9353";
System.out.println(censoredPhoneNumber(phoneNo));
}
}
KesimpulanAritkel blog ini menunjukkan 2 penggunaan regular expression :
- mencocokkan pola teks dengan method matches() yang ada pada setiap objek String.
- mengganti suatu text yang cocok dengan suatu pola dengan bantuan dua class helper, Pattern and Matcher.
Mudah-mudahan ini dapat membantu Anda untuk memecahkan masalah penggunaan regular expression di Java.
Salam,