ワイルドカードに関する次の記述中のa,bに入れる字句の適切な組合せはどれか。
任意の1文字を表す"?"と,長さゼロ以上の任意の文字列を表す"*"を使った文字列の検索について考える。
[a]では,"データ"を含む全ての文字列が該当する。
また,[b]では,"データ"で終わる全ての文字列が該当する。
正答4
解説
正解は4です。
ワイルドカードを使った文字列の検索で、"?"と"*"の違いを問う問題です。
"?"はちょうど1文字、"*"は0文字以上の任意の文字列を表します。
【選択肢別解説】
1:× "?データ*"は、"データ"の前にちょうど1文字が必要です。
"データ"で始まる文字列などが該当しないので、aに当てはまりません。
また"?データ"は前が1文字の4文字の文字列だけなので、bにも当てはまりません。
2:× bの"*データ"は正しいですが、aの"?データ*"は"データ"の前に1文字ちょうどが必要なので、"データ"を含む全ての文字列には該当しません。
3:× aの"*データ*"は正しいですが、bの"?データ"は"データ"の前がちょうど1文字の場合しか該当しません。
"データ"で終わる全ての文字列は表せません。
4:○ "*データ*"は前後に0文字以上の文字列を許すので、"データ"を含む全ての文字列が該当します。
"*データ"は"データ"で終わる全ての文字列が該当します。
【ポイント】
"*"は0文字も含むので、"*データ*"には"データ"そのものも該当します。
"データ*"は"データ"で始まる文字列、"*データ"は"データ"で終わる文字列を表します。