unisbadri.com » Python Java Golang Typescript Kotlin Ruby Rust Dart PHP
Regex

Regex #

Regular expressions (regex) adalah pola yang digunakan untuk mencari dan memanipulasi string berdasarkan aturan tertentu. Dalam Kotlin, regex sangat berguna untuk berbagai tugas, seperti validasi input, pencarian dan penggantian teks, dan pemrosesan string.

Kotlin menyediakan dukungan untuk regex melalui kelas Regex. Kelas ini menawarkan berbagai metode untuk bekerja dengan pola regex dan melakukan operasi string.

Membuat Regex #

Anda dapat membuat objek Regex dengan menggunakan konstruktor atau ekstensi toRegex() pada string.

Contoh Menggunakan Konstruktor #

val regex = Regex("[a-zA-Z]+") // Pola untuk mencocokkan satu atau lebih huruf

Contoh Menggunakan Ekstensi toRegex() #

val regex = "[a-zA-Z]+".toRegex() // Pola yang sama dengan di atas

Metode Utama dalam Kelas Regex #

matches #

Metode matches memeriksa apakah seluruh string cocok dengan pola regex.

val regex = "\\d+".toRegex() // Pola untuk mencocokkan satu atau lebih digit
val result = regex.matches("12345") // result = true

find #

Metode find mencari substring pertama yang cocok dengan pola regex dalam string.

val regex = "\\d+".toRegex()
val result = regex.find("There are 123 apples") // result = MatchResult
println(result?.value) // Output: 123

findAll #

Metode findAll mengembalikan semua substring yang cocok dengan pola regex dalam string.

val regex = "\\d+".toRegex()
val results = regex.findAll("There are 123 apples and 456 oranges")
for (match in results) {
    println(match.value) // Output: 123 456
}

replace #

Metode replace mengganti substring yang cocok dengan pola regex dengan string baru.

val regex = "\\d+".toRegex()
val result = regex.replace("There are 123 apples and 456 oranges", "#")
println(result) // Output: There are # apples and # oranges

replaceFirst #

Metode replaceFirst mengganti substring pertama yang cocok dengan pola regex dengan string baru.

val regex = "\\d+".toRegex()
val result = regex.replaceFirst("There are 123 apples and 456 oranges", "#")
println(result) // Output: There are # apples and 456 oranges

split #

Metode split membagi string menjadi array berdasarkan pola regex.

val regex = "\\s+".toRegex() // Pola untuk mencocokkan satu atau lebih spasi
val result = regex.split("Split this   sentence into words")
println(result) // Output: [Split, this, sentence, into, words]

Pola Regex dan Contoh #

Pola Dasar #

  • \\d: Mencocokkan digit (0-9)
  • \\D: Mencocokkan karakter non-digit
  • \\w: Mencocokkan karakter alfanumerik (huruf, angka, dan underscore)
  • \\W: Mencocokkan karakter non-alfanumerik
  • \\s: Mencocokkan spasi, tab, dan karakter whitespace lainnya
  • \\S: Mencocokkan karakter non-whitespace

Pola Khusus #

  • [a-z]: Mencocokkan huruf kecil
  • [A-Z]: Mencocokkan huruf kapital
  • [0-9]: Mencocokkan digit
  • [a-zA-Z0-9]: Mencocokkan huruf dan digit
  • ^: Mencocokkan awal string
  • $: Mencocokkan akhir string
  • *: Mencocokkan 0 atau lebih kali
  • +: Mencocokkan 1 atau lebih kali
  • ?: Mencocokkan 0 atau 1 kali
  • {n}: Mencocokkan tepat n kali
  • {n,}: Mencocokkan n atau lebih kali
  • {n,m}: Mencocokkan antara n dan m kali

Contoh Penerapan Pola Regex #

  • Validasi Email: Memeriksa format email yang valid.

    val emailRegex = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}\$".toRegex()
    val isValidEmail = emailRegex.matches("[email protected]") // isValidEmail = true
    
  • Ekstraksi Nomor Telepon: Menemukan nomor telepon dalam teks.

    val phoneRegex = "\\(\\d{3}\\) \\d{3}-\\d{4}".toRegex()
    val phoneText = "Call me at (123) 456-7890 or (987) 654-3210"
    val phones = phoneRegex.findAll(phoneText)
    for (phone in phones) {
        println(phone.value) // Output: (123) 456-7890 (987) 654-3210
    }
    

Kesimpulan #

Regex di Kotlin memungkinkan Anda untuk bekerja dengan string secara efisien menggunakan pola pencocokan dan manipulasi. Dengan memanfaatkan kelas Regex dan metode-metodenya, Anda dapat melakukan pencarian, penggantian, pemisahan, dan validasi data string sesuai dengan kebutuhan aplikasi Anda.

« Date & Time
Build Tools »