ワイルドカードに関する次の記述中のa,bに入れる字句の適切な組合せはどれか。 任意の1文字を表す“?”と,長さゼロ以上の任意の文字列を表す“*”を使った文字列の検索について考える。[a]では,“データ”を含む全ての文字列が該当する。また,[b]では,“データ”で終わる全ての文字列が該当する。
| a | b | |
| ア | ?データ* | ?データ |
| イ | ?データ* | *データ |
| ウ | *データ* | ?データ |
| エ | *データ* | *データ |
- アa:?データ*,b:?データ
- イa:?データ*,b:*データ
- ウa:*データ*,b:?データ
- エa:*データ*,b:*データ
正解と解説を見る
正解
エ a:*データ*,b:*データ
“*”は長さゼロ以上の任意の文字列を表すため,「*データ*」は前後に任意の文字列(無くてもよい)が付いた,すなわち「データ」を含む全ての文字列に一致する。一方,「*データ」は末尾が「データ」で終わる全ての文字列に一致する。したがって「a:*データ*,b:*データ」が正しい組合せである。「?」は任意の1文字のみを表すため,「?データ*」は先頭に必ず1文字だけ付くパターンに限定されてしまい「含む」全ての文字列には一致せず,「?データ」も同様に直前が必ず1文字である文字列にしか一致しないため,これらを含む他の選択肢はいずれも誤りである。