スポンサーリンク

ITパスポート試験 令和元年度 [問99] 過去問解説

問題

問99

ワイルドカードに関する次の記述中のa,bに入れる字句の適切な組合せはどれか。

任意の1文字を表す“?”と、長さゼロ以上の任意の文字列を表す“*”を使った文字列の検索について考える。「a」では、“データ”を含む全ての文字列が該当する。また、「b」では、“データ”で終わる全ての文字列が該当する。

[出典:ITパスポート試験 令和元年度 問99]

スポンサーリンク

正解

正解は「」です。

解説

 この問題は、ワイルドカードの使い方に関する基礎知識を問うものです。

 まずaについて考えます。
「データ」を含む全ての文字列に該当するパターンを作るには、任意の文字列が前後につながる可能性を考慮する必要があります。そのため「*データ*」が正解です。

 一方、bについては「データで終わる」文字列を対象としています。末尾に「データ」が来るため、前に任意の文字列がある可能性を考慮して「*データ」が適切です。先頭にワイルドカードを使い、最後に固定の「データ」がある形になります。

 たとえば「営業データ」や「顧客データ」など、前に違う単語があっても最後が「データ」で終わるものは「*データ」で一致します。

 このように、ワイルドカード「*」は非常に自由度が高く、柔軟な検索に使えるため、文字列検索の場面では非常に重要な役割を果たします。今回の正しい組み合わせは、「a=*データ*」、「b=*データ」であり、選択肢「エ」が正解となります。

  • ア(?データ*):
     「?」は任意の1文字だけを表すため、「データ」を含む全ての文字列を対象にするには不十分です。
  • イ(?データ* *データ):
     aの「?データ*」が不適切です。「?」は1文字のみのため、「データ」を含む全体の検索には合いません。
  • ウ(*データ* ?データ):
     bの「?データ」では「データ」で終わる条件を満たせません。先頭が1文字固定されてしまうからです。

難易度

 この問題の難易度は「普通レベル」です。ワイルドカードの「?」と「*」の違いを正しく理解していれば十分対応できますが、実際にプログラミングや検索条件設定に触れた経験がないと、やや混乱する可能性もあります。特に「?」が1文字限定である点を忘れないようにすることがポイントです。

スポンサーリンク

用語補足

ワイルドカード:
 文字列検索時に、任意の文字列や任意の文字を表す記号です。よく使われるのは「*」(ゼロ文字以上)と「?」(ちょうど1文字)です。

*(アスタリスク):
 0文字以上の任意の文字列を表します。例えば「*データ*」と書くと、「営業データ」も「顧客データファイル」も対象になります。

?(クエスチョンマーク):
 任意の1文字だけを表します。例えば「デー?タ」なら「データ」や「デーメタ」など1文字だけ違うものが対象になります。

対策

 ワイルドカードの「*」と「?」の使い分けを確実に覚えることが重要です。問題集や過去問で繰り返し例題に取り組みながら、どちらが「1文字」か「0文字以上」かを区別できるようにしましょう。特に「*データ」「*データ*」など検索条件の応用パターンを意識して練習するのが効果的です。


タイトルとURLをコピーしました