⊗jsSpRENPB 132 of 294 menu

Kurungan Tidak Menangkap dalam Regex JavaScript

Kurungan ( ) melakukan dua fungsi - pengelompokan aksara dan fungsi tangkapan (capturing group). Tetapi bagaimana jika kita hanya perlu mengelompokkan, tetapi tidak mahu menangkap ke dalam kumpulan? Untuk menyelesaikan masalah ini, diciptakan kurungan tidak menangkap (?: ) - ia mengelompokkan, tetapi tidak menangkap ke dalam kumpulan.

Contoh

Dalam contoh berikut, kurungan pertama kita perlukan untuk pengelompokan, dan kurungan kedua - untuk tangkapan. Walau bagaimanapun, kedua-dua kurungan tersebut menyimpan data ke dalam kumpulan tangkapan:

let str = 'abab123'; let res = str.match(/(ab)+([1-9]+)/);

Hasilnya, dalam kumpulan tangkapan kita akan terdapat yang berikut:

console.log(res[0]); // akan memaparkan 'abab123' console.log(res[1]); // akan memaparkan 'ab' console.log(res[2]); // akan memaparkan '123'

Contoh

Mari kita ubah supaya pasangan kurungan pertama hanya mengelompokkan, tetapi tidak menangkap ke dalam kumpulan:

let str = 'abab123'; let res = str.match(/(?:ab)+([1-9]+)/);

Hasilnya, dalam kumpulan tangkapan pertama akan terdapat nombor kita:

console.log(res[1]); // akan memaparkan '123'
azuzcrunlhy