【わいるどかーど】
ワイルドカード とは?
最終更新:
💡 一部をまとめて指定する記号。記法と範囲は文脈次第
パターンの中で、文字や文字列の範囲をまとめて指定する特殊な記号。使う記号と一致する範囲は、シェルのファイル名展開、SQLのLIKE、TLS証明書などの仕組みによって異なる。
📌 このページのポイント
- シェルのパターンでは*が0文字以上、?が1文字を表す
- ファイル名展開では階層区切りや先頭のドットに特別な扱いがある
- SQLのLIKEでは%や_を使い、SELECT *とは役割が異なる
- TLS証明書の*.example.comは左端の1階層を対象にする
*と?はどう使い分けるの?
POSIXのシェルのパターンなら、*は0文字以上、?は1文字に一致するよ。たとえば*.txtはmemo.txtなど、file?.txtはfile1.txtなどに合う。ただしファイル名展開では、階層区切りの/や先頭のドットを何でも含めるわけではないよ。
SQLでも*で名前を探すの?
*.example.comの証明書なら全部に使える?
TLSの名前照合では、www.example.comやapi.example.comのように左端の1階層に合うよ。a.b.example.comや、階層を足していないexample.comには、この指定だけでは合わない。DNSのワイルドカードの規則とも区別しよう。
正規表現の*とは同じ?
まとめて操作するときは何に注意するの?
使うツールの記法を確認し、まず対象を一覧で確かめよう。スペースや引用符の違いで、渡される引数や展開範囲が変わることがある。検索と削除などの操作を区別して、意図した名前だけに一致するか確認してから実行するんだ。
まとめ:ざっくりこれだけ覚えればOK!
「ワイルドカード」って出てきたら「名前などの一部をまとめて指定する特殊な記号」と思えばだいたいOK!
📖 おまけ:英語の意味
「Wildcard」 = 任意のものに当てはめる記号
💬 どこまで一致するかは使う仕組みの規則次第だよ。同じ*でも、シェル・正規表現・証明書で同じ意味になるわけではないんだ。