Rumah  >  Soal Jawab  >  teks badan

Ungkapan Biasa Javascript: Bagaimana untuk mengekalkan hanya kumpulan yang sepadan untuk ungkapan biasa arbitrari?

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粉574695215P粉574695215276 hari yang lalu372

membalas semua(1)saya akan balas

  • P粉071626364

    P粉0716263642024-01-17 15:46:08

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

    balas
    0
  • Batalbalas