Kantong dalam Regex itu Sendiri di JavaScript
Konten kantong tidak hanya tersedia di string pengganti, tetapi juga di dalam regex itu sendiri: kita dapat meletakkan sesuatu di kantong, lalu langsung dalam regex mengatakan bahwa di sini harus berisi konten dari kantong tersebut.
Konten kantong dapat diakses berdasarkan nomornya,
dengan diawali garis miring terbalik. Misalnya,
kantong pertama akan dapat diakses seperti ini: \1,
kantong kedua seperti ini - \2, ketiga
- \3 dan seterusnya.
Saya yakin semua yang ditulis di atas masih sangat tidak jelas bagi Anda. Ini tidak mengherankan, karena kantong adalah bagian yang paling sulit dipahami dalam regex. Mari kita pahami dengan contoh.
Contoh
Misalkan kita memiliki string seperti ini:
let str = 'aa bb cd ef';
Mari kita temukan semua tempat di dalamnya yang menampilkan dua huruf yang sama berurutan. Untuk menyelesaikan masalah, kita akan mencari huruf apa saja, memasukkannya ke dalam kantong, lalu memeriksa apakah karakter berikutnya adalah konten dari kantong tersebut:
let res = str.replace(/([a-z])\1/g, '!');
Hasilnya, variabel akan berisi berikut ini:
'! ! cd ef'
Contoh
Misalkan kita memiliki string seperti ini:
let str = 'asxca buzxb csgd';
Mari kita temukan semua kata di dalamnya yang huruf pertama dan terakhirnya sama. Untuk menyelesaikan masalah, kita akan menulis pola berikut: huruf, diikuti oleh satu atau lebih huruf, lalu diikuti oleh huruf yang sama dengan huruf pertama:
let res = str.replace(/([a-z])[a-z]+\1/g, '!');
Hasilnya, variabel akan berisi berikut ini:
'! ! csgd'
Tugas Praktis
Diberikan string:
let str = 'aaa bbb ccc xyz';
Temukan semua substring yang memiliki tiga huruf yang sama berurutan.
Diberikan string:
let str = 'a aa aaa aaaa aaaaa';
Temukan semua substring yang memiliki dua atau lebih huruf yang sama berurutan.
Diberikan string:
let str = 'aaa aaa bbb bbb ccc ddd';
Temukan semua substring yang memiliki dua kata yang sama berurutan.