Regular Expression, sering ditulis/disebut juga Regex / Regexp, adalah deretan karakter spesial yang mendefinisikan sebuah pola dalam pencarian teks. Bisa dibilang Regex itu seperti wildcard tapi lebih pintar, top markotop lah. Setiap bahasa pemrograman menyediakan Regex engine yang berbeda. Engine di Java ga sama dengan PHP, beda juga dengan JavaScript. Karena beda engine, belum tentu ekspresi Regex yang disupport oleh satu bahasa juga disuport bahasa yang lain. Biarpun begitu, sintaks Regex tetep sama di mana-mana. Dalam artikel ini kita akan kenalan dengan Regex dalam JavaScript. Dibanding Java & PHP, regex dalam JavaScript bisa dibilang terbatas. Artinya, semua regex dalam JavaScript pasti bisa dikopi ke dalam program Java & PHP tapi ga semua regex di Java & PHP bisa dipake di JavaScript. Kenapa pake Regex? Regex menyederhanakan pencarian teks. Memang untuk pencarian sederhana kita bisa pake fungsi-fungsi
Pake Regex, cukup begini bisa ketemu hasilnya ada 26 :
Kalo mau silakan coba hitung pake fungsi-fungsi RegEx di JavaScriptAda dua cara untuk bikin regex di JavaScript. Kita bisa bikin objek 2 atau pake string biasa.JS Bin on jsbin.com Regex biasanya dipake untuk fungsi-fungsi 4, 5, 6. Tapi Regex juga punya fungsi sendiri yang juga sering dipake seperti 7 & 8.
Dalam contoh kode di atas, 9 adalah ekspresi yang berisi token dan modifier. Tokennya adalah 0 yang artinya “sebarang angka”. 1 adalah modifier yang berarti “cari semuanya, jangan berenti di angka pertama”. Kalo ga pake 1, outputnya cuman angka “1”. Jadi kalo kita nulis regex, pola yang kita cari harus ditulis di antara dua garis miring dan flag setelah garis miring terakhir.
Pola yang dicari bisa berisi token dan/atau teks biasa. Tergantung kebutuhan. Kalo cuman untuk cari kata “hijau” dalam lagu “Balonku”, kita ga perlu pake token, bisa langsung pake kata yang dicari , 3.ModifierJavaScript nyediain 3 modifier yang bisa kita pake yaitu :
Kita coba apa gunanya 1.JS Bin on jsbin.com Kalo kita ingin cari teks dalam semua baris, kita gabungin 1 & 6. Selain itu, kita perlu pake karakter yang disebut anchor penanda awal atau akhir baris, 0 atau 1.JS Bin on jsbin.com Ekspresi 2 dalam kode di atas artinya “Cari ba mulai dari awal baris“. Tapi karena kita pake 6, ekspresi tersebut berubah jadi “Cari ba mulai dari awal semua baris“.TokenToken Regex dikelompokkan berdasar fungsinya. Ada yg dipake untuk definisi jenis karakter, untuk nentuin batas, dll. Daftar lengkapnya silakan baca sendiri di MDN . Character Class : Dot (.), \d, \D, \w, \W, \sToken dalam kelompok ini mendefinisikan jenis karakter. TokenArtinya 4Sebarang karakter 0Sebarang angka, 1 digit, 0 – 9 6Sebarang karakter yang bukan angka 7Sebarang angka atau huruf kecil & besar termasuk underscore 8Sebarang karakter yang bukan huruf, angka, atau underscore 9Karakter whitespace, spasi, tab, line-breakToken 4 artinya sebarang karakter kecuali line-break ( 1 , 2).JS Bin on jsbin.com Gimana kalo kita ingin cari tanda titik? Kita perlu pake 3 di depan titik, jadi tanda titiknya dianggap karakter bukan token regex. Contohnya begini,JS Bin on jsbin.com Contoh untuk Character class lainnya: JS Bin on jsbin.com Character SetToken ini mendefinisikan sekelompok karakter yang ingin kita cari. Sintaksnya pake kurung siku 4. Set bisa berisi pilihan beberapa karakter atau range seperti huruf a-z , angka 1-100, dll.JS Bin on jsbin.com Tanda karet 0 di baris terakhir adalah negasi, jadi regexnya berarti semua karakter yang bukan angka 0 – 9.AlternationIni token sederhana, 6. Fungsinya mirip dengan pencabangan 7. Kalo satu pola ga ketemu, cari pola satunya.JS Bin on jsbin.com Boundary / AnchorToken boundary mendefinisikan batas awal/akhir teks yang diproses. TokenArtinya 0Awal baris 1Akhir barisString 0Batas awal / akhir kata. Antara huruf/angka dan spasiJS Bin on jsbin.com QuantifierQuantifier menentukan berapa banyak karakter yang dicari. TokenArtinyaString 10 atau lebih, sebanyak-banyaknyaString 21 atau lebih, sebanyak-banyaknyaString 3minimal m , maksimal nString 40 atau 1JS Bin on jsbin.com GroupGroup memungkinkan kita membuat kelompok ekspresi yang akan diproses secara terpisah dari ekspresi lainnya dalam satu regex yang sama. Regex yang dijalankan dalam sebuah grup ditulis dalam tanda kurung. Misalnya kita punya daftar file seperti ini:
JS Bin on jsbin.com Selain fungsi di atas, group juga memungkinkan kita mengakses hasil regex setiap grup sebagai sebuah variabel untuk diproses lagi di program kita. Untuk mengakses hasil regex sebagai variabel, kita perlu pake fungsi 8. Contohnya,JS Bin on jsbin.com Kita lihat hasil 8 adalah sebuah String 7 & hasil regex masing-masing group bisa diakses lewat nomor indeks sesuai urutan grup dalam regex.Negative LookaheadContoh group di atas pake ekspresi yang namanya Positive Lookahead. Artinya, teks yang dicari dalam grup harus ketemu. Negative Lookahead adalah kebalikannya, teks/pola dalam group ga boleh ada. JS Bin on jsbin.com Ya gitu deh tentang Regex, tutorialnya cukup sekian. Kalo mau lanjut silakan kerjain latihan soal di bawah 🙂 Modul apa dalam python untuk menjalankan RegEx?Modul RegEx
Python memiliki paket bawaan yang disebut re , yang dapat digunakan untuk bekerja dengan Ekspresi Reguler.
Apa itu RegEx di Python?Regex merupakan singkatan dari Regular Expression yang merupakan serangkaian karakter yang mendefinisikan sebuah pola pencarian. Beberapa bidang yang menggunakan metode ini adalah seperti Natural Language Processing (NLP), Text Mining, Data Validation, Finding Pattern, Anomaly Detection dan lainnya.
|