Bagaimana untuk Menangkap Berbilang Kumpulan dalam Regex JavaScript Berulang?

Linda Hamilton
Lepaskan: 2024-11-13 10:33:02
asal
601 orang telah melayarinya

How to Capture Multiple Groups in a Repeated JavaScript Regex?

Menangkap Kumpulan Arbitrari dalam JavaScript Regexp

Apabila menggunakan menangkap kumpulan dalam ungkapan biasa JavaScript, adalah penting untuk memahami batasannya. Secara lalai, hanya tangkapan terakhir kumpulan berulang disimpan, walaupun kumpulan itu bersarang.

Contoh: Kumpulan Tangkap Bersarang

Pertimbangkan ungkapan biasa berikut:

/^(\s*\w+)+$/
Salin selepas log masuk

Keluaran yang dijangkakan:

["foo bar baz", "foo", " bar", " baz"]
Salin selepas log masuk

Keluaran sebenar:

["foo bar baz", " baz"]
Salin selepas log masuk

Dalam kes ini, hanya kumpulan terakhir yang ditangkap, " baz", dikembalikan. Ini kerana JavaScript hanya mengekalkan tangkapan terakhir untuk setiap kumpulan berulang.

Pilihan untuk Menangkap Berbilang Kumpulan

Untuk mengatasi had ini, beberapa pilihan tersedia:

  • Pisah pada Pembatas: Jika boleh, gunakan pemisahan rentetan untuk memisahkan segmen yang diingini.
  • Gelung dan Pemisahan Exec: Gunakan gelung exec untuk berulang kali padankan corak dalam rentetan dan bahagikan kumpulan yang ditangkap kepada padanan individu.
  • Padanan Berbilang Peringkat: Tangkap kumpulan berulang dalam satu perlawanan dan kemudian gunakan regex lain untuk mengekstrak segmen individu.

Contoh: Exec Gelung dan Pemisahan

Berikut ialah contoh menggunakan gelung exec untuk menangkap dan membahagikan kumpulan bersarang:

var text = "a;b;<c;d;e;f>;g;h;i;<no no no>;j;k;<xx;yy;zz>";
var r = /<(\w+(;\w+)*)>/g;
var match;

while ((match = r.exec(text)) != null) {
  print(match[1].split(";"));
}

// Output:
// ["c", "d", "e", "f"]
// ["xx", "yy", "zz"]
Salin selepas log masuk

Dalam contoh ini, kumpulan bersarang ditangkap sebagai kumpulan 1, yang kemudiannya dipecahkan pada pembatas koma bernoktah.

Soalan Berkaitan

  • Bagaimana anda mengakses memadankan kumpulan dalam regex JavaScript?

Atas ialah kandungan terperinci Bagaimana untuk Menangkap Berbilang Kumpulan dalam Regex JavaScript Berulang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan