Java Regex - Apa itu Regular Expressions dan Bagaimana Cara Menggunakannya?



Java Regex adalah API yang digunakan untuk menentukan pola untuk mencari atau memanipulasi string. Artikel ini juga akan membahas tentang berbagai kelas Ekspresi Reguler yang disediakan oleh Java.

Ekstraksi atau validasi data merupakan aspek penting dari setiap bahasa pemrograman. Salah satu cara paling populer untuk validasi data adalah dengan menggunakan ekspresi reguler. menggunakan iniekspresi reguler untuk mendeskripsikan pola karakter. Artikel ini tentang Regex Java akan mencantumkan berbagai metode menggunakan ekspresi dalam urutan berikut:

Ayo mulai!





Apa itu Ekspresi Reguler?

UNTUK 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 - Java Regex - Edureka



Ekspresi reguler dapat berupa karakter tunggal atau pola yang lebih rumit. Ini dapat digunakan untuk semua jenis pencarian teks dan operasi penggantian teks. Pola Regex terdiri dari karakter sederhana, seperti / abc / , atau kombinasi karakter sederhana dan khusus, seperti / ab * c / atau /example(d+).d*/ .

bagaimana menjadi seorang insinyur ai

Apa itu Java Regex?

Itu Regex Java adalah API yang digunakan untuk tentukan pola untuk mencari atau memanipulasi . Ini banyak digunakan untuk mendefinisikan batasan pada String seperti kata sandi dan validasi email.

Ada beberapa metode berbeda dalam menggunakan Java Regex. Jadi mari kita lanjutkan dan lihat ekspresi yang berbeda.



Kelas Pencocokan

Kelas ini digunakan untuk melakukan operasi pencocokan pada urutan karakter. Tabel di bawah ini mewakili berbagai metode kelas Matcher.

metode Deskripsi
pertandingan boolean () Menguji apakah ekspresi reguler yang diberikan cocok dengan pola
boolean find () Digunakan untuk menemukan ekspresi berikutnya yang cocok dengan pola
boolean find (int start) Mencari ekspresi berikutnya yang cocok dengan pola dari nomor awal yang diberikan
Grup string () Digunakan untuk mengembalikan urutan yang cocok
int mulai () Mengembalikan indeks awal dari urutan yang cocok
int end () Mengembalikan indeks akhir dari urutan yang cocok
int groupCount () Mengembalikan jumlah total dari urutan yang cocok

Kelas Pola

Kelas Pola adalah versi ekspresi reguler terkompilasi yang digunakan untuk menentukan pola mesin regex.

metode Deskripsi
Kompilasi Pola statis (String regex) Ini mengkompilasi regex yang diberikan dan mengembalikan instance Pattern
Kecocokan yang cocok (masukan CharSequence) Ini digunakan untuk membuat matcher yang mencocokkan input yang diberikan dengan pola
pencocokan boolean statis (String regex, input CharSequence) Ia bekerja sebagai kombinasi dari metode kompilasi dan pencocokan. Ini mengkompilasi ekspresi reguler dan mencocokkan input yang diberikan dengan pola
Pembagian string [] (masukan CharSequence) Digunakan untuk membagi String masukan yang diberikan di sekitar kecocokan dari pola tertentu
Pola string () Membantu Mengembalikan pola regex

Sekarang mari kita ambil contoh kecil untuk memahami cara menulis ekspresi reguler.

import java.util.regex. * public class RegexExample {public static void main (String [] args) {Pattern pattern = Pattern.compile ('. xx.') Matcher matcher = pattern.matcher ('AxxB') System.out .println ('String cocok dengan Regex - + matcher.matches ())}} yang diberikan

Dalam hal ini, secara internal menggunakan Pattern dan Matcher kelas regex untuk melakukan pemrosesan tetapi jelas,itu mengurangi baris kode. Kelas pola juga berisi metode pencocokan yang menggunakan argumen regex dan string input dan mengembalikan hasil boolean setelah mencocokkannya. Jadi kode tersebut berfungsi dengan baik untuk mencocokkan masukan dengan ekspresi reguler di Jawa. Karenanya hasilnya akan benar seperti yang ditunjukkan di bawah ini.

Keluaran:
benar

Sekarang mari kita lihat beberapa kategori lagi dari Ekspresi Reguler Java.

Kelas Karakter Regex

Tabel di bawah ini mewakili kombinasi kelas karakter yang berbeda.

Kelas KarakterDeskripsi
[abc] a, b, atau c (kelas sederhana)
[^ abc] Karakter apa pun kecuali a, b, atau c (negasi)
[a-zA-Z] a sampai z atau A sampai Z, inklusif (range)
[a-h [m-p]] a sampai d, atau m melalui p: [a-dm-p] (union)
[a-z && [def]] d, e, atau f (persimpangan)
[a-z && [^ bc]] a sampai z, kecuali untuk b dan c: [ad-z] (pengurangan)
[a-z && [^ m-p]] a sampai z, dan bukan m sampai p: [a-lq-z] (pengurangan)

Contoh:

import java.util.regex. * public class CharacterExample {public static void main (String args []) {// false (bukan x atau y atau z) System.out.println (Pattern.matches ('[xyz]', 'wbcd')) // true (di antara x atau y atau z) System.out.println (Pattern.matches ('[xyz]', 'x')) // false (x dan y muncul lebih dari sekali) Sistem .out.println (Pattern.matches ('[xyz]', 'xxyyyyyz'))}}

Regex Quantifier

Pembilang menentukan jumlah kemunculan karakter. Tabel di bawah ini mewakili berbagai bilangan.

RegexDeskripsi
X? X terjadi sekali atau tidak sama sekali
X + X muncul sekali atau lebih
X * X muncul nol kali atau lebih
X {n} X hanya muncul n kali
X {n,} X muncul n kali atau lebih
X dan Z} X muncul setidaknya y kali tetapi kurang dari z kali

Contoh:

import java.util.regex. * public class Contoh {public static void main (String args []) {System.out.println ('? quantifier ....') // (a atau y atau z datang satu kali) System.out.println (Pattern.matches ('[ayz]?', 'A')) // keluaran: true System.out.println (Pattern.matches ('[ayz]?', 'Aaa')) / / (ay dan z datang lebih dari satu kali) System.out.println (Pattern.matches ('[ayz]?', 'ayyyyzz')) // output: false // (a datang lebih dari satu kali) Sistem. out.println (Pattern.matches ('[ayz]?', 'amnta')) // output: false // (a atau y atau z harus muncul satu kali) System.out.println (Pattern.matches ('[ ayz]? ',' ay ')) // output: false System.out.println (' + quantifier .... ') // (a atau y atau z sekali atau lebih kali) System.out.println (Pola .matches ('[ayz] +', 'a')) // output: true // (a datang lebih dari satu kali) System.out.println (Pattern.matches ('[ayz] +', 'aaa' )) // outpu: true // (a atau y atau z muncul lebih dari sekali) System.out.println (Pattern.matches ([amn] + ',' aayyyzz ')) // output: true // (z dan t tidak cocok dengan pola) System.out.println (Pat tern.matches ('[ayz] +', 'aammta')) // output: false System.out.println ('* quantifier ....') // (a atau y atau z mungkin muncul nol kali atau lebih ) System.out.println (Pattern.matches ('[ayz] *', 'ayyyza')) // keluaran: true}}

Pada dasarnya, ini akan mencari pembilang yang cocok dan cocok dengan hasil pencarian.

Karakter meta Regex

Karakter meta ekspresi reguler berfungsi sebagai kode pendek. Mari kita lihat tabel di bawah ini untuk memahami berbagai jenis karakter meta.

RegexDeskripsi
. Itu bisa karakter apa saja (mungkin atau mungkin tidak cocok dengan terminator)
d Mewakili digit apa pun, singkatnya [0-9]
D Mewakili non-digit apa pun, kependekan dari [^ 0-9]
s Mewakili semua karakter spasi, kependekan dari [tnx0Bfr]
S Ini bisa berupa karakter non-spasi, kependekan dari [^ s]
di Ini bisa berupa karakter kata, kependekan dari [a-zA-Z_0-9]
DI Mewakili karakter non-kata apa pun, kependekan dari [^ w]
b Merupakan batas kata
B Ini adalah batas non-kata

Contoh:

import java.util.regex. * public class MetacharExample {public static void main (String args []) {// d berarti digit System.out.println ('metacharacters d ....') // (non-digit) System.out.println (Pattern.matches ('d', 'abc')) // Output: false // (digit dan muncul sekali) System.out.println (Pattern.matches ('d', '1') ) // Output: true // (digit tetapi muncul lebih dari sekali) System.out.println (Pattern.matches ('d', '4443')) // Output: false // (digit dan karakter) System.out .println (Pattern.matches ('d', '323abc')) // Output: false // D berarti System.out.println non-digit ('metacharacters D ....') // (bukan digit tapi datang lebih dari sekali) System.out.println (Pattern.matches ('D', 'abc')) // Output: false // Its a Digit System.out.println (Pattern.matches ('D', '1 ')) // Output: false System.out.println (Pattern.matches (' D ',' 4443 ')) // Output: false // (digit dan karakter) System.out.println (Pattern.matches (' D ',' 323abc ')) // Output: false // (bukan digit dan muncul sekali) System.out.println (Pattern.matches (' D ',' m ')) // Output: true System.out .pr intln ('metacharacters D with quantifier ....') // (bukan digit dan mungkin muncul 0 kali atau lebih) System.out.println (Pattern.matches ('D *', 'abc')) // Output : true}}

Berdasarkan kondisi yang disebutkan di atas, maka akan ditampilkan keluarannya. Begitulah cara kerjanya. Jadi, itu tadi tentang berbagai jenis Regex. Dengan ini, kita sampai pada akhir artikel ini. sayaharap Anda menemukannya informatif. Jika Anda ingin mempelajari lebih lanjut, Anda dapat melihat kami demikian juga.

Lihat oleh Edureka, perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar yang puas dan tersebar di seluruh dunia. Kami di sini untuk membantu Anda dengan setiap langkah dalam perjalanan Anda, untuk menjadi selain pertanyaan wawancara java ini, kami hadir dengan kurikulum yang dirancang untuk siswa dan profesional yang ingin menjadi Pengembang Java.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar artikel 'Java Regex' ini dan kami akan menghubungi Anda kembali secepatnya.