Regex, atau Regular Expression, adalah rangkaian karakter yang membentuk pola pencarian. Pola ini dapat digunakan dalam melakukan berbagai tugas seperti validasi, pencocokan, penggantian, dan lain-lain. Di Java, regex adalah alat penting yang digunakan saat menangani string. Pada artikel ini, kita akan melihat cara membuat pola regex untuk waktu.
Tugasnya adalah membuat pola regex yang dapat memvalidasi waktu format 12 jam konvensional, seperti '12:00' atau '01:45'.
public class Main {
public static void main(String[] args) {
// Test the pattern
System.out.println("12:30 PM".matches("^((1[0-2]|0?[1-9]):([0-5][0-9])\s?([AaPp][Mm]))$")); // returns true
}
}
Pola `^((1[0-2]|0?[1-9]):([0-5][0-9])\s?([AaPp][Mm]))$` ini dibuat dengan alasan berikut:
– `1[0-2]|0?[1-9]`: Bagian pola ini memeriksa jamnya. Ia mengenali digit apa pun dari 01-09 dan 10-12. '0?' menunjukkan bahwa nol di depan adalah opsional.
– `:` ini adalah simbol literal yang cocok dengan titik dua pada input.
– `[0-5][0-9]`: Bagian ini memeriksa menit. Ia menerima nomor apa pun dari 00 hingga 59.
– `\s`: Cocok dengan karakter spasi.
– `[AaPp][Mm]` – Bagian ini memeriksa AM atau PM. Hal ini memungkinkan masukan untuk menerima karakter huruf kecil dan huruf besar.
Pola ini pada akhirnya memastikan waktu 12 jam yang diformat dengan sempurna.
Java dan Regex
The Jawa bahasa telah memasukkan regex sejak versi 1.4. Untuk memfasilitasi operasi regex, Java mengembangkan `java.util.regex`, sebuah paket dengan tiga kelas: `Pattern`, `Matcher`, dan `PatternSyntaxException`. Kelas `Pattern` menyederhanakan inisiasi operasi regex, sedangkan kelas `Matcher` diperlukan untuk melakukan operasi pencocokan. Terakhir, `PatternSyntaxException`, subkelas dari `IllegalArgumentException`, menunjukkan kesalahan sintaksis apa pun dalam pola ekspresi reguler.
- `Pattern.compile(String regex)`: Metode statis dari kelas `Pattern` ini mengkompilasi ekspresi reguler dan menetapkannya ke Pola.
- `Pencocokan pola (input CharSequence)`: Metode instance ini membuat pencocokan yang akan mencocokkan ekspresi reguler dengan input.
Menguraikan Pola Regex
Tamak regex pola pada awalnya mungkin tampak menakutkan karena banyaknya penggunaan karakter khusus. Namun, jika dilihat lebih dekat, pola apa pun dapat diuraikan:
– '^' adalah karakter jangkar yang menunjukkan awal sebuah baris. '$' menunjukkan akhir. Jadi, bersama-sama mereka memastikan kecocokan string penuh dan bukan hanya kecocokan substring.
– '1[0-2]|0?[1-9]' cocok dengan digit apa pun dari 01-09 atau 10-12. Dengan '|', regex mengambil operan kiri atau kanan.
– '[0-5][0-9]' adalah rentang digit yang cocok dengan digit mana pun dari 00-59.
– 's' cocok dengan karakter spasi apa pun.
– Tanda kurung '[ ]' mendefinisikan kelas karakter, memungkinkan Anda membuat daftar beberapa karakter untuk dicocokkan.
Memahami blok penyusun individu ini membuka banyak sekali kemungkinan pencocokan pola, menjadikan regex alat yang ampuh dalam perangkat pengembang mana pun.