Ungkapan Biasa Javascript: Bagaimana untuk mengekalkan hanya kumpulan yang sepadan untuk ungkapan biasa arbitrari?
P粉574695215
P粉574695215 2024-01-16 22:01:08
0
1
427

Adakah terdapat cara dalam JS regex API untuk menulis semula input supaya hanya kumpulan yang sepadan disimpan (tertib), tetapi ia berfungsi dengan regex arbitrari (termasuk regex tanpa menangkap kumpulan)?

Sebagai contoh untuk ungkapan biasa /abc([D-F]+)gh([I-K]+)/ 和输入 abcFEEDghKIKI,我想要输出 "FEEDKIKI" , kerana ini adalah bahagian yang ditangkap.

Walau bagaimanapun, regex input juga boleh menjadi /([a-zA-Z]+)/ yang hanya akan mengembalikan teks asal untuk input yang sama.

Jika ungkapan biasa ialah /([0-9]+)/ maka rentetan kosong akan dikembalikan.

Reex akan dijana oleh alat, tetapi terdapat banyak regex dan saya tidak mahu kod kes khas untuk bilangan kumpulan penangkapan yang berbeza.

Sebaik-baiknya saya juga boleh mengakses tempoh perlawanan dalam input entah bagaimana.

Saya mengandaikan terdapat beberapa cara untuk melakukan ini melalui panggilan balik yang dihantar kepada replace() (atau serupa), tetapi tidak jelas bagaimana/jika mungkin untuk mendapatkan indeks kumpulan penangkap (atau jika perlu dalam JS).

Pada asasnya, saya cuba meniru perkara yang boleh anda lakukan melalui MatchResult API di Java, di mana kumpulan boleh diulang dan indeks mula/akhir kumpulan penangkap boleh ditemui. < /p>

Terima kasih terlebih dahulu!

P粉574695215
P粉574695215

membalas semua(1)
P粉071626364

Temui: Bagaimana untuk mengakses ungkapan biasa JavaScript? Nampaknya (sekurang-kurangnya pada mulanya) menggunakan exec() akan melakukan apa yang saya mahu.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan