質問: 下記の解釈で合っているのか見て欲しいです。 ```
回答: ざっくり「`product-card__image-link`クラスと、`data-index`と`href`属性を持った`a`タグ」を検索する正規表現を意図したのでしょうが、そうでない文字列も検索対象になってしまいます。以下理由を示します。 > > おそらく`[\s\S]`はスペースの事を指していると思われる。 > > ... > > classの中身が追加されて、先ほどと同様にスペースが入ってdata-index属性に入る文字列が検索対象となる。同様にスペースでhref属性に入る文字列が何でも検索対象となる。 > > > `\s`は空白文字(スペース、タブ、改行)にマッチします。`\S`は空白文字**以外**すべての文字にマッチします。したがって、その両方を組み合わせた`[\s\S]`は、すべての文字にマッチするということになります。大文字小文字が紛らわしいですね。 `.`と違って、改行文字にもマッチします。 > > `*?`はメタ文字で直前にスペースが一個以上あっても検索する対象となる。 > > > `*?`単体では何にマッチするかはわかりません。たとえば`[\s\S]*?`では、 * `[\s\S]` すべての文字が * `*` 0個以上並んだ文字列にマッチする * `?` ただし、なるべく範囲が狭くなるように という意味になります。 まとめると、この正規表現は以下のような文字列にマッチしてしまいます。 ```