- Pattern Class: Sebuah pattern object adalah kompilasi representasi dari ekspresi reguler. Pattern class tidak memberikan konstruktor publik, untuk membuat pattern kita harus terlebih dahulu memanggil public static compile() methods yang kemudian akan dikembalikan pada pattern object. Method ini menerima ekpresi reguler pada argumen pertama.
- Matcher Class: Matcher object adalah mesin yang menafsirkan pola dan melakukan operasi persamaan (match) dari string yang di input. Seperti pattern class, matcher tidak memiliki konstruktor publik, kita dapat menggunakan object matcher dengan menerapkan matcher() method pada object pattern.
- PatternSyntaxException: PatternSyntaxException adalah eksepsi yang tidak dikonfirm yang mununjukkan kesalahan syntax dalam pola ekspresi reguler.
Menangkap Group
- ((A) (B (C)))
- (A)
- (B (C))
- (C)
Contoh :
import java.util.regex.*; public class RegexMatches { public static void main( String args[] ){ // String yang akan discan untuk dicari polanya. String line = "Mencoba mencari persamaan dengan bantuan M4A1 vs M200"; String pattern = "(.*)(\\d+)(.*)"; // Membat sebuah pattern object Pattern r = Pattern.compile(pattern); // Membuat matcher object. Matcher m = r.matcher(line); if (m.find( )) { System.out.println("Nilai ditemukan: " + m.group(0) ); System.out.println("Nilai ditemukan: " + m.group(1) ); System.out.println("Nilai ditemukan: " + m.group(2) ); } else { System.out.println("TIDAK SAMA"); } } }
Nilai ditemukan: Mencoba mencari persamaan dengan bantuan M4A1 vs M200 Nilai ditemukan: Mencoba mencari persamaan dengan bantuan M4A1 vs M20 Nilai ditemukan: 0
Syntax Ekspresi Reguler
| subexpression | Korek api |
|---|---|
| ^ | Awal baris matches. |
| $ | Akhir baris matches. |
| . | Matches dengan karakter tunggal kecuali baris baru.Menggunakan opsi m memungkinkan untuk mencocokkan baris baru juga. |
| [...] | Matches dengan karakter tunggal dalam tanda kurung. |
| [^ ...] | Matches dengan satu karakter apapun tidak dalam kurung |
| \A | Awal seluruh string |
| \z | Akhir seluruh string |
| \Z | Akhir seluruh string kecuali diijinkan garis akhir terminator. |
| re* | Matches 0 atau lebih kejadian dari sebelumnya ekspresi. |
| re+ | Matches 1 atau lebih dari sebelumnya |
| re? | Matches 0 atau 1 terjadinya sebelumnya ekspresi. |
| re{n} | Matches sama persis n jumlah kemunculan sebelumnya ekspresi. |
| re{n,} | Matches n atau lebih kejadian dari sebelumnya ekspresi. |
| re {n, m} | Matches setidaknya n dan paling banyak kejadian m dari sebelumnya ekspresi. |
| a| b | Matches baik a atau b. |
| (re) | Grup ekspresi reguler dan mengingat matches teks. |
| (?: re) | Kelompok ekspresi reguler tanpa mengingat teks yang matches. |
| (?> re) | Matches dengan independent pattern tanpa backtracking. |
| \w | Matches karakter kata. |
| \W | Matches karakter bukan kata. |
| \s | Matches spasi. Setara dengan [\t\n\r\f]. |
| \S | Matches bukan spasi. |
| \d | Matches digit. Setara dengan [0-9]. |
| \D | Matches nondigits. |
| \A | Matches dimulai string. |
| \Z | Matches akhir string. Jika baris baru ada, matches sebelum baris baru. |
| \z | Matches akhir string. |
| \G | Matches titik di mana match terakhir selesai. |
| \n | Kembali-referensi untuk menangkap kelompok nomor "n" |
| \b | Matches batas kata ketika kurung luar. Matches backspace (0x08) saat berada di dalam kurung. |
| \B | Matches batas bukan kata. |
| \n, \t, dll | Matches baris, tombol kembali, tab, dll |
| \Q | Escape (kutipan) semua karakter sampai dengan \E |
| \E | Berakhir mengutip dimulai dengan \Q |
Method Matcher Class
Method Indeks:
| No | Metode dengan Deskripsi |
|---|---|
| 1 | public int start()
Mengembalikan index awal match sebelumnya.
|
| 2 | public int start(int group)
Mengembalikan index awal subsequence ditangkap oleh kelompok diberikan selama operasi match sebelumnya.
|
| 3 | public int end()
Mengembalikan offset setelah karakter terakhir cocok.
|
| 4 | public int end(int group)
Mengembalikan offset setelah karakter terakhir dari subsequence ditangkap oleh kelompok diberikan selama operasi match sebelumnya.
|
Methods Studi:
| No | Metode dengan Deskripsi |
|---|---|
| 1 | public boolean lookingAt()
Upaya untuk mencocokkan urutan masukan, mulai dari awal, terhadap pattern.
|
| 2 | public boolean find()
Upaya untuk menemukan subsequence berikutnya dari urutan input yang cocok pada pola.
|
| 3 | public boolean find(int start)
Mengulang matcher kemudian mencoba untuk menemukan subsequence berikutnya dari urutan input yang cocok pada pola, dimulai dari indeks tertentu.
|
| 4 | public boolean matches()
Upaya untuk mencocokkan seluruh wilayah terhadap pola.
|
Replacement Methods:
| No | Metode dengan Deskripsi |
|---|---|
| 1 | public Matcher appendReplacement (StringBuffer sb, String replacement)
Menerapkan non-terminal append-dan-ganti langkah.
|
| 2 | public StringBuffer appendTail(StringBuffer sb)
Mengimplementasikan terminal menambahkan-dan-ganti langkah.
|
| 3 | public String replaceAll(String replacement)
Menggantikan setiap berikutnya dari urutan masukan yang cocok dengan pola string pengganti yang diberikan.
|
| 4 | public String replaceFirst(String replacement)
Menggantikan subsequence 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 sebuah String yang akan bekerja sebagai s pengganti literal dalam metode appendReplacement kelas Matcher.
|
Start dan End Method:
import java.util.regex.*; public class RegexMatches { private static final String REGEX = "\\bibu\\b"; private static final String INPUT = "ibu ibu ibu ibubui ibu"; public static void main( String args[] ){ Pattern p = Pattern.compile(REGEX); Matcher m = p.matcher(INPUT); // mendapatkan matcher object int count = 0; while(m.find()) { count++; System.out.println("Nomor match"+count); System.out.println("start(): "+m.start()); System.out.println("end(): "+m.end()); } } }
Nomor match1 start(): 0 end(): 3 Nomor match2 start(): 4 end(): 7 Nomor match3 start(): 8 end(): 11 Nomor match4 start(): 19 end(): 22
Matches Dan lookingAt Methods:
import java.util.regex.*; public class RegexMatches { private static final String REGEX = "foo"; private static final String INPUT = "fooooooooooooooooo"; private static Pattern pattern; private static Matcher matcher; public static void main( String args[] ){ pattern = Pattern.compile(REGEX); matcher = pattern.matcher(INPUT); System.out.println("REGEX saat ini adalah: "+REGEX); System.out.println("INPUT adalah: "+INPUT); System.out.println("lookingAt(): "+matcher.lookingAt()); System.out.println("matches(): "+matcher.matches()); } }
REGEX saat ini adalah: foo INPUT adalah: fooooooooooooooooo lookingAt(): true matches(): false
replaceFirst Dan replaceAll Method
import java.util.regex.*; public class RegexMatches { private static String REGEX = "kambing"; private static String INPUT = "kambing makan rumput. " + "semua kambing makan rumput."; private static String REPLACE = "sapi"; public static void main(String[] args) { Pattern p = Pattern.compile(REGEX); // get a matcher object Matcher m = p.matcher(INPUT); INPUT = m.replaceAll(REPLACE); System.out.println(INPUT); } }
sapi makan rumput. semua sapi makan rumput.
appendReplacement dan appendTail Methods
import java.util.regex.*; public class RegexMatches { private static String REGEX = "a*b"; private static String INPUT = "aabfooaabfooabfoob"; private static String REPLACE = "-"; public static void main(String[] args) { Pattern p = Pattern.compile(REGEX); // get a matcher object Matcher m = p.matcher(INPUT); StringBuffer sb = new StringBuffer(); while(m.find()){ m.appendReplacement(sb,REPLACE); } m.appendTail(sb); System.out.println(sb.toString()); } }
-foo-foo-foo-
PatternSyntaxException Class Methods
| No | Metode dengan Deskripsi |
|---|---|
| 1 | public String getDescription()
Mengambil deskripsi kesalahan.
|
| 2 | public int getIndex()
Mengambil indeks kesalahan.
|
| 3 | public String getPattern()
Mengambil pola ekspresi reguler yang salah.
|
| 4 | public String getMessage()
Mengembalikan string multi-baris yang berisi deskripsi dari kesalahan sintaks dan indeks, pola ekspresi reguler yang keliru, dan indikasi visual dari indeks kesalahan dalam pola.
|










