質問: /\bid[ \t]*="([^"\\]*(?:\\.[^"\\]*)*)"/g ``` なお、上記のコードはこのような意味だと認識しております。 1. `\bid`区切り文字とidの文字列を含む 2. `[ \t]*`文字列idの後ろに半角スペースやタブが0文字以上連続 3. `="`文字列="を含む 4. `[^"\\]*`文字列"と\以外の文字0以上が連続 5. `(?:\\.`\と改行以外の1文字 **←何故?** 6. `[^"\\]*` 4と同じ
回答: ?:について 上記は後方参照の対象とせずにグループ化だけを行うために、始まりの'('のあとにつけるものです。 この()で囲まれたものは後方参照の対象になりません(つまりメモリに持ちません) そういう意味で?:がついているのだと思います。