Ekspresi Reguler Java
Apa itu Ekspresi Reguler?
Ekspresi reguler adalah urutan karakter yang membentuk pola pencarian. Saat Anda mencari data dalam teks, Anda dapat menggunakan pola pencarian ini untuk menjelaskan apa yang Anda cari.
Ekspresi reguler dapat berupa karakter tunggal, atau pola yang lebih rumit.
Ekspresi reguler dapat digunakan untuk melakukan semua jenis pencarian teks dan operasi penggantian teks .
Java tidak memiliki kelas Regular Expression bawaan, tetapi kita dapat mengimpor java.util.regex
paket untuk bekerja dengan ekspresi reguler. Paket termasuk kelas-kelas berikut:
Pattern
Kelas - Mendefinisikan pola (untuk digunakan dalam pencarian)Matcher
Kelas - Digunakan untuk mencari polaPatternSyntaxException
Kelas - Menunjukkan kesalahan sintaks dalam pola ekspresi reguler
Contoh
Cari tahu apakah ada kemunculan kata "w3schools" dalam sebuah kalimat:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Pattern pattern = Pattern.compile("w3schools", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("Visit W3Schools!");
boolean matchFound = matcher.find();
if(matchFound) {
System.out.println("Match found");
} else {
System.out.println("Match not found");
}
}
}
// Outputs Match found
Contoh Dijelaskan
Dalam contoh ini, Kata "w3schools" sedang dicari dalam sebuah kalimat.
Pertama, pola dibuat menggunakan Pattern.compile()
metode. Parameter pertama menunjukkan pola mana yang sedang dicari dan parameter kedua memiliki tanda untuk menunjukkan bahwa pencarian harus peka huruf besar/kecil. Parameter kedua adalah opsional.
Metode matcher()
ini digunakan untuk mencari pola dalam sebuah string. Ini mengembalikan objek Matcher yang berisi informasi tentang pencarian yang dilakukan.
Metode find()
mengembalikan nilai true jika pola ditemukan dalam string dan false jika tidak ditemukan.
Bendera
Bendera dalam compile()
metode mengubah cara pencarian dilakukan. Berikut adalah beberapa di antaranya:
Pattern.CASE_INSENSITIVE
- Kasus huruf akan diabaikan saat melakukan pencarian.Pattern.LITERAL
- Karakter khusus dalam pola tidak akan memiliki arti khusus dan akan diperlakukan sebagai karakter biasa saat melakukan pencarian.Pattern.UNICODE_CASE
- Gunakan bersama denganCASE_INSENSITIVE
bendera untuk mengabaikan huruf di luar alfabet bahasa Inggris
Pola Ekspresi Reguler
Parameter pertama dari Pattern.compile()
metode ini adalah polanya. Ini menjelaskan apa yang sedang dicari.
Tanda kurung digunakan untuk menemukan berbagai karakter:
Expression | Description |
---|---|
[abc] | Find one character from the options between the brackets |
[^abc] | Find one character NOT between the brackets |
[0-9] | Find one character from the range 0 to 9 |
Metakarakter
Metakarakter adalah karakter dengan arti khusus:
Metacharacter | Description |
---|---|
| | Find a match for any one of the patterns separated by | as in: cat|dog|fish |
. | Find just one instance of any character |
^ | Finds a match as the beginning of a string as in: ^Hello |
$ | Finds a match at the end of the string as in: World$ |
\d | Find a digit |
\s | Find a whitespace character |
\b | Find a match at the beginning of a word like this: \bWORD, or at the end of a word like this: WORD\b |
\uxxxx | Find the Unicode character specified by the hexadecimal number xxxx |
Kuantifier
Quantifier mendefinisikan kuantitas:
Quantifier | Description |
---|---|
n+ | Matches any string that contains at least one n |
n* | Matches any string that contains zero or more occurrences of n |
n? | Matches any string that contains zero or one occurrences of n |
n{x} | Matches any string that contains a sequence of X n's |
n{x,y} | Matches any string that contains a sequence of X to Y n's |
n{x,} | Matches any string that contains a sequence of at least X n's |
Catatan: Jika ekspresi Anda perlu mencari salah satu karakter khusus, Anda dapat menggunakan garis miring terbalik ( \ ) untuk menghindarinya. Di Jawa, garis miring terbalik dalam string perlu diloloskan sendiri, jadi dua garis miring terbalik diperlukan untuk keluar dari karakter khusus. Misalnya, untuk mencari satu atau beberapa tanda tanya, Anda dapat menggunakan ekspresi berikut: "\\?"