Regular Expression di dalam Ruby

Regular expression dapat diartikan mengecek keberadaan suatu data berdasarkan suatu pola yang kita buat, penggunaan regular expression dapat dikatakan sangat membantu dalam pemprograman khususnya dalam melakukan validasi input dan memproses suatu data dengan pola tertentu. Regular expression atau disingkat Regexp

Regular Expression in Ruby

Pengertian

  • Regular expression dapat diartikan mengecek keberadaan suatu data berdasarkan suatu pola yang kita buat
  • Regular expression disingkat menjadi Regexp
  • cara membuat datanya diawali dan diakhir dengan tanda slash /.../
  • bisa juga menggunakan %r{...}
  • contoh
    /aba/    =~ "Surabaya"  # 5, kata aba ditemukan di index ke 5
    /Aba/    =~ "SURABAYA"  # nil, kata aba tidak ditemukan karena case sensitif
    /Aba/i   =~ "Surabaya"  # 3, tulisan i di akhir artinya abaikan huruf besar / kecil
    /a b a/i =~ "Surabaya"  # nil, karena ada spasi
    /a b a/x =~ "Surabaya"  # 3, tulisan x di akhir artinya abaikan spasi
    pola = %r{<(.+)>(.+)<(.+)>}ix
    hasil = pola.match("<html>Warkop DKI rek</html>")
    hasil[0]                # <html>Warkop DKI rek</html>
    hasil[1]                # html
    hasil[2]                # warkop DKI rek
    hasil[3]                # /html 
    /^aba/ =~ "Surabaya"    # nil, karena aba pada tulisan surabaya tidak di bagian awal
    /^aba/ =~ "abang abang"   # 0, karena ketemu di posisi index 0
    /aya$/ =~ "Surabaya surabaya"    # 14, karena yang diambil adalah aya yang terakhir

contoh 1

    pola1 = %r{(?<tanggal>\d{1,2})-(?<bulan>\d{1,2})-(?<tahun>\d{4})}
    hasil = pola1.match("Kemerdekaan Indonesia adalah 17-08-1945")
    hasil[0]         # 17-08-1945
    hasil[:tanggal]  # 17
    hasil[:bulan]    # 08
    hasil[:tahun]    # 1945
  • Penjelasan
    • %r{ ... } untuk membuat regular expression (pola aturan)
    • tanda ( ...) untuk memisah menjadi 3 kelompok
    • d{1,2} ambil angka , boleh 1 atau 2 digit
    • bila ada yang sesuai pola masukkan pola pertama ke dalam variabel tanggal
    • pola kedua masukkan ke dalam bulan
    • pola ketiga harus 4 digit angka dan dimasukkan ke dalam tahun

beberapa keyword regexp

    [abc]   A single character of: a, b, or c
    [^abc]  Any single character except: a, b, or c
    [a-z]   hanya boleh huruf kecil
    [a-zA-Z]    hanya boleh karakter
    ^   harus diawali
    $   harus diakhiri
    \d  hanya boleh angka
    \D  hanya boleh NON angka
    \w  word character (boleh huruf besar / kecil , angka dan underscore)
    \W  non-word character
    \b  Any word boundary
    a{3}    Exactly 3 of a
    a{3,}   3 or more of a
    a{3,6}  Between 3 and 6 of a

reference