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