「ワイルドカード (情報処理)」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
編集の要約なし
編集の要約なし
1行目: 1行目:
コンピュータなどの関連において、'''ワイルドカード'''は、[[検索]]など[[グロブ]]の際に指定するパターンに使用する[[特殊文字]]の種類で、どんな対象文字、ないし文字列にもマッチするもののことである。[[カードゲーム]]の[[ワイルドカード (トランプ)|ワイルドカード]]に由来する呼称。
コンピュータなどの関連において、'''ワイルドカード'''は、[[検索]]など[[グロブ]]の際に指定するパターンに使用する[[特殊文字]]の種類で、どんな対象文字、ないし文字列にもマッチするもののことである。[[カードゲーム]]の[[ワイルドカード (トランプ)|ワイルドカード]]に由来する呼称。


[[UNIX]]の[[Unixシェル|シェル]]では、「?」([[疑問符]])を[[任意]]の一文字、「*」([[アスタリスク]])を長さ0文字以上の任意の文字列にマッチするパターンとして、コマンドライン上で、存在するファイルの名前に対して展開される(たとえば ac abc abd というファイルがある場合、cat a*c とコマンドを入力すると、cat abc ac のように展開されたうえで、cat プログラムが起動される)
[[UNIX]]の[[Unixシェル|シェル]]では、「<code>?</code>」([[疑問符]])を[[任意]]の一文字、「<code>*</code>」([[アスタリスク]])を長さ0文字以上の任意の文字列にマッチするパターンとして、コマンドライン上で、存在するファイルの名前に対して展開される。


たとえば <code>sales-201712.xlsx<code>、<code>sales-201801.txt</code>、<code>sales-201802.txt</code> というファイルがある場合、
[[MS-DOS]]やその衣鉢を継いだ[[Microsoft Windows]]では、シェルはのような展開を行わず、ワイルドカードはプログラムのプロセスにそのまま渡される。[[COMMAND.COM]]の内部コマンドにおける解釈では、ファイル名の途中で * があると、そこから拡張子のピリオドまでマッチをすっ飛ばし、全てマッチしたものとみなすので、FOO*BAR というパターンは FOO* と全く同じ意味である。また、REN *.TXT *.BAK といったようなコマンドに対しては{{仮リンク|DWIM|en|DWIM}}的な挙動をする。


vi sales-2018*.txt
[[SQL]]のWHERE句におけるLIKE predicate中のパターンでは、長さ0文字以上の任意の文字列が「%」、任意の一文字が「_」である。

コマンドを入力すると、

vi sales-201801.txt sales-201802.txt

のように展開されたうえで、<code>vi</code> プログラムが起動される。

[[MS-DOS]]やその衣鉢を継いだ[[Microsoft Windows]]シェルプログラム <code>[[COMMAND.COM]]</code> でのような展開を行わず、ワイルドカードはプログラムのプロセスにそのまま渡される。<code>COMMAND.COM</code> の内部コマンドにおける解釈では、ファイル名の途中で <code>*</code> があると、そこから拡張子のピリオドまでマッチをすっ飛ばし、全てマッチしたものとみなすので、<code>FOO*BAR</code> というパターンは <code>FOO*</code> と全く同じ意味である。また、<code>REN *.TXT *.BAK</code> といったようなコマンドに対しては{{仮リンク|DWIM|en|DWIM}}的な挙動をする。

[[SQL]]の <code>WHERE</code> 句における <code>LIKE predicate</code> 中のパターンでは、長さ0文字以上の任意の文字列が「<code>%</code>」、任意の一文字が「<code>_</code>」である。


[[正規表現]]における[[クリーネ閉包]]とは似て非なるものであり混同してはいけない。
[[正規表現]]における[[クリーネ閉包]]とは似て非なるものであり混同してはいけない。

2018年4月30日 (月) 21:52時点における版

コンピュータなどの関連において、ワイルドカードは、検索などグロブの際に指定するパターンに使用する特殊文字の種類で、どんな対象文字、ないし文字列にもマッチするもののことである。カードゲームワイルドカードに由来する呼称。

UNIXシェルでは、「?」(疑問符)を任意の一文字、「*」(アスタリスク)を長さ0文字以上の任意の文字列にマッチするパターンとして、コマンドライン上で、存在するファイルの名前に対して展開される。

たとえば sales-201712.xlsxsales-201801.txtsales-201802.txt というファイルがある場合、

vi sales-2018*.txt

コマンドを入力すると、

vi sales-201801.txt sales-201802.txt

のように展開されたうえで、vi プログラムが起動される。

MS-DOSやその衣鉢を継いだMicrosoft Windowsのシェルプログラム COMMAND.COM ではこのような展開を行わず、ワイルドカードはプログラムのプロセスにそのまま渡される。COMMAND.COM の内部コマンドにおける解釈では、ファイル名の途中で * があると、そこから拡張子のピリオドまでマッチをすっ飛ばし、全てマッチしたものとみなすので、FOO*BAR というパターンは FOO* と全く同じ意味である。また、REN *.TXT *.BAK といったようなコマンドに対してはDWIM英語版的な挙動をする。

SQLWHERE 句における LIKE predicate 中のパターンでは、長さ0文字以上の任意の文字列が「%」、任意の一文字が「_」である。

正規表現におけるクリーネ閉包とは似て非なるものであり混同してはいけない。

関連項目