Operator Pengulangan Karakter dalam Regex
Ada situasi di mana kita ingin menunjukkan,
bahwa sebuah karakter diulang sebanyak jumlah tertentu.
Jika kita tahu persis jumlah pengulangannya,
maka kita bisa menuliskannya beberapa kali
- /aaaa/. Tapi apa yang harus dilakukan jika kita ingin
mengatakan seperti ini: ulangi satu kali atau lebih?
Untuk ini ada operator (kuantifier)
pengulangan: plus + (satu kali atau lebih),
tanda bintang * (nol kali atau lebih) dan
tanda tanya ? (nol kali atau satu kali).
Operator-operator ini berlaku untuk karakter
yang ada di depannya.
Mari kita lihat cara kerja operator-operator ini pada contoh.
Contoh
Temukan semua substring sesuai pola huruf
'x', huruf 'a' satu kali atau lebih,
huruf 'x':
let str = 'xx xax xaax xaaax xbx';
let res = str.replace(/xa+x/g, '!');
Hasilnya, variabel akan berisi nilai berikut:
'xx ! ! ! xbx'
Contoh
Temukan semua substring sesuai pola huruf
'x', huruf 'a' nol kali atau lebih,
huruf 'x':
let str = 'xx xax xaax xaaax xbx'
let res = str.replace(/xa*x/g, '!');
Hasilnya, variabel akan berisi nilai berikut:
'! ! ! ! xbx'
Contoh
Temukan semua substring sesuai pola huruf
'x', huruf 'a' nol kali atau satu kali,
huruf 'x':
let str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');
Hasilnya, variabel akan berisi nilai berikut:
'! ! xaax xbx'
Tugas Praktis
Diberikan string:
let str = 'aa aba abba abbba abca abea';
Tulis regex yang akan menemukan string
'aba', 'abba', 'abbba'
sesuai pola: huruf 'a', huruf 'b'
berapa pun jumlahnya, huruf 'a'.
Diberikan string:
let str = 'aa aba abba abbba abca abea';
Tulis regex yang akan menemukan string
'aa', 'aba', 'abba',
'abbba' sesuai pola: huruf 'a',
huruf 'b' berapa pun jumlahnya (termasuk
tidak sama sekali), huruf 'a'.
Diberikan string:
let str = 'aa aba abba abbba abca abea';
Tulis regex yang akan menemukan string
'aa', 'aba' sesuai pola: huruf
'a', huruf 'b' satu kali atau
tidak sama sekali, huruf 'a'.
Diberikan string:
let str = 'aa aba abba abbba abca abea';
Tulis regex yang akan menemukan string
'aa', 'aba', 'abba',
'abbba', tanpa menangkap 'abca'
dan 'abea'.