Lompati ke konten utama
Modul 7 · Pelajaran 4 dari 428/32 dalam kursus~10 min
Pelajaran modul (4/4)

Pisahkan dengan regex

String.prototype.split(separator) tidak hanya menerima string tetap tetapi juga juga regex sebagai pemisah. Ini menjadikannya alat yang ampuh untuk melakukan tokenisasi teks terstruktur.

JS
'uno, due,tre  quattro'.split(/[,\s]+/);
// ["uno", "due", "tre", "quattro"]

Regex /[,\s]+/ cocok dengan "satu atau lebih koma atau spasi": split terbelah pada pembatas majemuk apa pun.

Kasus-kasus umum

  • CSV Permisif: text.split(/\s*,\s*/) untuk menangani spasi di sekitar koma.
  • Tokenizer naif: text.split(/\s+/) untuk mengekstrak kata.
  • Simpan pemisah: jika ekspresi reguler berisi grup penangkap, maka konten grup disertakan dalam larik hasil.
JS
'a=1; b=2; c=3'.split(/(;)\s*/);
// ["a=1", ";", "b=2", ";", "c=3"]

Tanpa grup () titik koma akan hilang. Dengan (;) Anda menyimpannya dalam hasilnya.

Mempertahankan pemisah dalam operasi terpisah

Jika Anda menempatkan pemisah terpisah di dalam tanda kurung, output dari String.prototype.split akan menyertakan pemisah itu sendiri sebagai elemen dalam larik terakhir, alih-alih membuangnya.

Cobalah

Latihan#regex.m7.l4.e1
Upaya: 0Memuat…

Temukan setiap pemisah CSV yang permisif: koma dengan spasi opsional di sekitarnya. Dengan cara ini Anda dapat menggunakannya secara terpisah untuk memberi token pada daftar.

Memuat editor…
Tunjukkan petunjuk

Gunakan \\s* sebelum dan sesudah koma untuk menyerap spasi opsional.

Solusi tersedia setelah 3 upaya

Tinjau latihan

Latihan#regex.m7.l4.e2
Upaya: 0Memuat…

Temukan setiap pemisah 'spasi atau titik koma' (satu atau lebih). Dengan cara ini pemisahan akan membuat teks menjadi kata-kata menjadi token.

Memuat editor…
Tunjukkan petunjuk

Gabungkan \\s dan ; di kelas [\\s;] dengan + quantifier.

Solusi tersedia setelah 3 upaya

Tantangan tambahan

Latihan#regex.m7.l4.e3
Upaya: 0Memuat…

Write a regex to use in a split that separates numbers while keeping math operators `+`, `-`, `*`, `/` as elements of the array.

Memuat editor…
Tunjukkan petunjuk

Enclose the math operators character class in capture parentheses to preserve them in the split array.

Solusi tersedia setelah 3 upaya