Media Belajar Bahasa Pemrograman | by APPKEY

JavaTutorial Java 33 : Java Regex, Mari Belajar Menggunakannya!

Tutorial Java 33 : Java Regex, Mari Belajar Menggunakannya!

-

Regular Expression adalah salah satu komponen penting yang ada di dalam suatu bahasa pemrograman. Ia merupakan urutan dari suatu karakter yang membentuk sebuah pola. Begitu pula pada Java Regex. Regex pada Java digunakan untuk mendefinisikan suatu pola tertentu untuk mencari atau memanipulasi string. Pada artikel ini kami akan mengajak Anda belajar regex pada Java.

Apa itu Java Regex?

Java Regex adalah urutan karakter yang membentuk pola pencarian. Saat Anda mencari data dalam teks, Anda bisa menggunakan pola pencarian ini untuk menjelaskan apa yang Anda cari.

Regex dapat berupa karakter tunggal, atau pola yang lebih rumit. Regular Expression Java dapat digunakan untuk melakukan semua jenis pencarian teks dan operasi penggantian teks.

Java tidak memiliki kelas Regular Expression bawaan, tetapi kita dapat mengimpor paket java.util.regex untuk bekerja dengan Regular Expression Java. Paket yang tersedia dalam java.uti.regex termasuk kelas-kelas berikut:

  • Pattern Class

Pattern Class digunakan sebagai representasi terkompilasi dari regex Java. Pattern Class tidak menyediakan konstruktor publik. Untuk membuat sebuah pola, Anda harus terlebih dahulu memanggil salah satu metode public static compile(), yang kemudian akan mengembalikan objek Pattern.

  • Matcher Class

Matcher class adalah mesin yang menginterpretasikan pola dan melakukan operasi pencocokan terhadap string input. Seperti kelas Pattern, Matcher tidak mendefinisikan konstruktor publik. Anda mendapatkan objek Matcher dengan memanggil metode matcher() pada objek Pattern.

  • PatternSyntaxException Class

PatternSyntaxException adalah pengecualian yang tidak dicentang yang menunjukkan kesalahan sintaksis dalam pola java Regex.

Menangkap Grup

Menangkap grup dalam Java Regex (capturing group) adalah cara untuk memperlakukan banyak karakter sebagai satu kesatuan. Anda bisa membuatnya dengan menempatkan karakter yang telah dikelompokkan ke dalam satu set tanda kurung. Misalnya, Regular Expression Java (dog) membuat grup tunggal yang berisi huruf “d”, “o”, dan “g”.

Capturing Group diberi nomor dengan menghitung tanda kurung buka dari kiri ke kanan. Dalam ekspresi ((A)(B(C))), misalnya, ada empat kelompok seperti berikut ini.

  • ((A)(B(C)))
  • (A)
  • (B(C))
  • (C)

Untuk mengetahui berapa banyak grup yang ada dalam ekspresi, panggil metode groupCount pada objek matcher. Metode groupCount mengembalikan int yang menunjukkan jumlah grup penangkap yang ada dalam pola matcher.

Ada juga grup khusus, grup 0, yang selalu mewakili seluruh ekspresi. Contoh berikut mengilustrasikan cara menemukan string digit dari string alfanumerik yang diberikan

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Contoh1 {

   public static void main(String args[]) {
      String nilai = " 20220422!!?;.,";
      String pattern = "(.*)(\\d+)(.*)";

      Pattern ptr = Pattern.compile(pattern);

      Matcher mtr = ptr.matcher(nilai);
      if (mtr.find( )) {
         System.out.println("Hasil: " + mtr.group(0));
         System.out.println("Hasil: " + mtr.group(1));
         System.out.println("Hasil: " + mtr.group(2));
      } else {
         System.out.println("Gagal!!");
      }
   }
}

Kode di atas akan menghasilkan output seperti di bawah ini:

Hasil: 20220422!!?;.,
Hasil: 2022042
Hasil: 2

Syntax Java Regex

Pada Java terdapat beberapa syntax yang digunakan untuk mendefinisikan Regular Expression Java. Berikut adalah tabel yang mencantumkan semua sintaks metakarakter regex Java yang tersedia di Java.

Artikel Terkait  Tutorial Java 15 : Generics Java, Memahami Penggunaan Generics pada Bahasa Java

Subexpression Pencocokan
^ Cocok dengan awal baris.
$ Cocok dengan akhir baris.
. Cocok dengan karakter tunggal apa pun kecuali baris baru. Apabila Anda memakai opsi m maka Anda bisa mencocokkan baris baru juga.
[…] Mencocokkan karakter tunggal apa pun dalam tanda kurung.
[^…] Cocok dengan karakter tunggal apa pun yang tidak ada dalam tanda kurung.
\A Awal dari seluruh string.
\z Akhir dari seluruh string.
\Z Akhir dari seluruh string kecuali terminator baris akhir yang diizinkan.
re* Cocok dengan 0 atau lebih kemunculan ekspresi sebelumnya.
re+ Mencocokkan 1 atau lebih hal sebelumnya.
re? Mencocokkan 0 atau 1 kemunculan ekspresi sebelumnya.
re{ n} Cocok persis n jumlah kemunculan ekspresi sebelumnya.
re{ n,} Cocok dengan n atau lebih kemunculan ekspresi sebelumnya.
re{ n, m} Cocok setidaknya n dan paling banyak m kemunculan ekspresi sebelumnya.
a| b Cocok dengan a atau b.
(re) Mengelompokkan Java Regex dan mengingat teks yang cocok.
(?: re) Mengelompokkan regex tanpa mengingat teks yang cocok.
(?> re) Mencocokkan pola independen tanpa mundur.
\w Mencocokkan karakter kata.
\W Mencocokkan karakter bukan kata.
\s Cocok dengan spasi putih. Setara dengan [\t\n\r\f].
\S Cocok dengan nonspasi putih.
\d Cocok dengan angka. Setara dengan [0-9].
\D Cocok dengan nondigit.
\A Cocok dengan awal string.
\Z Cocok dengan akhir string. Jika ada baris baru, itu cocok sebelum baris baru.
\z Cocok dengan akhir string.
\G Cocok dengan titik di mana pertandingan terakhir selesai.
\n Referensi balik untuk menangkap nomor grup “n”.
\b Mencocokkan batas kata saat berada di luar tanda kurung. Cocok dengan spasi mundur (0x08) saat berada di dalam tanda kurung.
\B Mencocokkan batas bukan kata.
\n, \t, etc. Cocok dengan baris baru, carriage return, tab, dll.
\Q Escape (kutipan) semua karakter hingga \E.
\E Mengakhiri kutipan yang dimulai dengan \Q.

 

Metode Dari Matcher Class

Berikut ini adalah metode instance yang sangat berguna dalam Java Regex.

1. Index Method

Index method menyediakan nilai index yang berguna yang menunjukkan tepatnya di mana kecocokan ditemukan di string input.

Sr.No. Metode dan Deskripsi
1 public int start()

Mengembalikan indeks awal pertandingan sebelumnya.

2 public int start(int group)

Mengembalikan indeks awal dari urutan yang ditangkap oleh grup tertentu selama operasi pencocokan sebelumnya.

3 public int end()

Mengembalikan offset setelah karakter terakhir cocok.

4 public int end(int group)

Mengembalikan offset setelah karakter terakhir dari urutan yang ditangkap oleh grup tertentu selama operasi pencocokan sebelumnya.

 

2. Study Method

Study method meninjau string input dan mengembalikan Boolean yang menunjukkan apakah pola ditemukan atau tidak pada Java regex.

Sr.No. Metode & Deskripsi
1 public boolean lookingAt()

Mencoba mencocokkan urutan input, mulai dari awal wilayah, dengan pola.

2 public boolean find()

Mencoba menemukan urutan berikutnya dari urutan input yang cocok dengan pola.

3 public boolean find(int start)

Mereset pencocokan ini dan kemudian mencoba menemukan urutan berikutnya dari urutan input yang cocok dengan pola, mulai dari indeks yang ditentukan.

4 public boolean matches()

Mencoba mencocokkan seluruh wilayah dengan pola.

 

3. Replacement Method

Replacement Method adalah metode yang berguna untuk mengganti teks dalam string input.

Sr.No. Metode & Deskripsi
1 public Matcher appendReplacement(StringBuffer sb, String replacement)

Menerapkan langkah append-and-replace non-terminal.

2 public StringBuffer appendTail(StringBuffer sb)

Menerapkan langkah tambahkan-dan-ganti terminal.

3 public String replaceAll(String replacement)

Mengganti setiap suburutan dari urutan input yang cocok dengan pola dengan string pengganti yang diberikan.

4 public String replaceFirst(String replacement)

Menggantikan urutan pertama dari urutan input yang cocok dengan pola dengan string pengganti yang diberikan.

5 public static String quoteReplacement(String s)

Mengembalikan String pengganti literal untuk String yang ditentukan. Metode ini menghasilkan String yang akan berfungsi sebagai pengganti literal s dalam metode appendReplacement dari kelas Matcher.

 

4. Start and End Method

Berikut adalah contoh yang menghitung berapa kali kata “java” muncul di string input.

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Contoh2 {

   private static final String regex = "\\bjava\\b";
   private static final String pesan = "Selamat belajar java !!";

   public static void main(String args[]) {
      Pattern ptr = Pattern.compile(regex);
      Matcher mtr = ptr.matcher(pesan);
      int count = 0;

      while(mtr.find()) {
         count++;
         System.out.println("Kata java: "+count);
         System.out.println("Mulai pada baris: "+mtr.start());
         System.out.println("Berakhir pada baris: "+mtr.end());
      }
   }
}

Kode di atas akan memberikan output seperti di bawah ini:

Kata java: 1
start(): 16
end(): 20

Anda dapat melihat bahwa contoh ini menggunakan batas kata untuk memastikan bahwa huruf “j” “a” “v” “a” bukan hanya substring dalam kata yang lebih panjang dalam Java regex. Ini juga memberikan beberapa informasi berguna tentang di mana dalam string input kecocokan telah terjadi.

Metode awal mengembalikan indeks awal dari urutan yang ditangkap oleh grup yang diberikan selama operasi pencocokan sebelumnya, dan akhir mengembalikan indeks karakter terakhir yang cocok, ditambah satu.

Metode Matches dan lookingAt

Metode Matches dan lookingAt keduanya mencoba mencocokkan urutan input dengan pola. Perbedaannya, bagaimanapun, adalah bahwa kecocokan membutuhkan seluruh urutan input untuk dicocokkan, sedangkan lookingAt tidak.

Kedua metode selalu dimulai di awal string input. Berikut adalah contoh yang menjelaskan fungsinya.

Artikel Terkait  Tutorial Java 17 : Mengenal Overriding Java dan Superclass Subclass

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Contoh3 {

   private static final String regex = "java";
   private static final String pesan = "java adalah";
   private static Pattern ptr;
   private static Matcher mtr;

   public static void main(String args[]) {
      ptr = Pattern.compile(regex);
      mtr = ptr.matcher(pesan);

      System.out.println("regex: "+regex);
      System.out.println("pesan: "+pesan);

      System.out.println("Hasil lookingAt: "+mtr.lookingAt());
      System.out.println("Hasil matches: "+mtr.matches());
   }
}

Kode di atas akan menghasilkan output seperti di bawah ini:

regex: java
pesan: java adalah
Hasil lookingAt: true
Hasil matches: false

Metode replaceFirst dan replaceAll

Metode replaceFirst dan replaceAll menggantikan teks yang cocok dengan Java Regex yang diberikan. Seperti yang ditunjukkan oleh namanya, replaceFirst menggantikan kemunculan pertama, dan replaceAll menggantikan semua kemunculan. Berikut adalah contoh yang menjelaskan fungsionalitas tersebut.

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Contoh4 {

   private static String regex = "bahasa";
   private static String pesan = "Belajar bahasa";
   private static String regex2 = "java";

   public static void main(String[] args) {
      Pattern ptr = Pattern.compile(regex);
      
      Matcher mtr = ptr.matcher(pesan); 
      pesan = mtr.replaceAll(regex2);
      System.out.println(pesan);
   }
}

Maka berikut ini adalah hasil yang diberikan oleh kode di atas.

Belajar java


Metode appendReplacement dan appendTail

Matcher Class juga menyediakan metode appendReplacement dan appendTail untuk penggantian teks. Berikut adalah contoh yang menjelaskan fungsinya:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Contoh5 {

   private static String regex = "n*k";
   private static String pesan = "Belajarnkjava";
   private static String regex2 = " ";
   public static void main(String[] args) {

      Pattern ptr = Pattern.compile(regex);
      
      Matcher mtr = ptr.matcher(pesan);
      StringBuffer strbuff = new StringBuffer();
      while(mtr.find()) {
         mtr.appendReplacement(strbuff, regex2);
      }
      mtr.appendTail(strbuff);
      System.out.println(strbuff.toString());
   }
}

Berikut adalah outputnya:

Belajar java

Metode Kelas PatternSyntaxException

PatternSyntaxException adalah pengecualian yang tidak dicentang yang menunjukkan kesalahan sintaksis dalam pola Java regex. Pada kelas PatternSyntaxException Java menyediakan berbagai metode yang  membantu Anda menentukan hal-hal yang salah dalam kode Anda.

Sr.No. Metode & Deskripsi
1 public String getDescription()

Mengambil deskripsi kesalahan.

2 public int getIndex()

Mengambil indeks kesalahan.

3 public String getPattern()

Mengambil pola regex yang salah.

4 public String getMessage()

Mengembalikan string multi-line yang berisi deskripsi kesalahan sintaks dan indeksnya, pola regex yang salah, dan indikasi visual indeks kesalahan dalam pola.

 

Demikianlah penjelasan tentang Java Regex. Jika Anda ingin menjadi programmer Java yang handal, Anda perlu belajar regex agar bisa membuat program terbaik. Jika Anda ingin belajar lebih banyak tentang Java, jangan lupa kunjungi Codekey di https://codekey.id/ dan dapatkan berbagai materi gratis seputar pemrrograman.


Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.

Jasa Pembuatan Aplikasi

Jasa Pembuatan Website

Jasa Pembuatan Paket Aplikasi

Jasa Pembuatan Internet Marketing

Tutorial

Subscribe Sekarang

Dapatkan beragam informasi menarik tentang bahasa pemrograman langsung melalui email Anda. Subscribe sekarang dan terus belajar bersama kami!

Blog Post Ranking 10

Tutorial Python 9 : Cara Membuat Looping Python

Pada artikel sebelumnya, Codekey telah menjelaskan tentang Operasi Kondisional Python yang di dalamnya menyinggung tentang percabangan dan perulangan. Belajar...

Tutorial Python 8 : Langkah Mudah Membuat Operasi Kondisional pada Python

Pada pembahasan sebelumnya, Codekey telah menjelaskan kepada Anda tentang pengoperasian string pada Python mulai dari menggabungkan hingga memanipulasi string...

Tutorial Python 7 : Python String Format dan Cara Mudahnya

Anda ingin belajar Python dan ingin menjadi ahli dalam bahasa pemrograman Python? Mari belajar bersama Codekey! Pada pembahasan kali...

Tutorial PHP 22 : Cara Membuat Redirect PHP dengan Cepat dan Mudah

Jika Anda melakukan browsing di browser kesayangan Anda, mungkin Anda pernah melihat link yang berisikan “php redirect” atau yang...

Tutorial PHP 23 : Cara Membuat Messages Alert PHP

Alert box atau alert messages digunakan di situs web untuk menampilkan pesan peringatan kepada pengguna bahwa mereka telah memasukkan...

Tutorial Dart 18 : Ayo Mulai, Pelajari Cara Install Flutter

Pada seri tutorial Dart kali ini, Codekey akan menampilkan hal yang sedikit berbeda, yaitu tentang aplikasi-aplikasi yang mendukung pemrograman...

Tutorial SQL 8 : Constraint SQL, Bagaimana Fungsi dan Penggunaannya?

Pada artikel sebelumnya Anda telah mempelajari tentang wildcard SQL, pada artikel kali ini kami akan menjelaskan tentang constraint SQL. Jika...

Tutorial Javascript 8 : Array Javascript, Panduan Lengkap Cara Membuatnya

Seperti bahasa pemrograman yang berorientasi objek lainnya, dalam JavaScript juga terdapat array. Jika Anda memiliki banyak objek yang ingin...

Tutorial PHP 8 : Memahami Array Multidimensi PHP

Pada artikel sebelumnya kami telah membahas tentang array PHP serta membahas sedikit tentang array multidimensi PHP. Pada artikel kali...

Tutorial SQL 9 : Agregasi SQL, Cara Mengolah data Menggunakan Fungsi Ini

Agregasi data adalah cara runtuh, meringkas, atau mengelompokan data. Agregasi adalah hal yang selalu ada di setiap aplikasi untuk...

Bisnis

Online Service

Peluang Bisnis

Model Bisnis

Entrepreneurship

Uang

Ketrampilan

Outsourcing

Monetize

Pemasaran

SEO

Internet Marketing

Dasar Pemasaran

Strategi Pemasaran

Situs Web Analitik

Iklan

Teknologi

Teknologi Terbaru

AI

Komputer

Jaringan

Paling Sering dibaca
Mungkin Anda Menyukainya