戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

ITパスポート 2019年 秋期 99


問題文

ワイルドカードに関する次の記述中のa, bに入れる字句の適切な組合せはどれか。
任意の1文字を表す“?“と、長さゼロ以上の任意の文字列を表す“*“を使った文字列の検索について考える。[ a ]では、“データ“を含む全ての文字列が該当する。また、[ b ]では、“データ“で終わる全ての文字列が該当する。
ITパスポート 2019年 秋期  問99の選択肢の画像

選択肢

(正解)

🔒 解説は解答すると表示されます

ワイルドカードの文字列検索【ITパスポート 解説】

正解の理由

ワイルドカードは、文字列検索で「任意の文字」を表す記号です。問題文で使われる記号は次の通りです。
  • 「?」(クエスチョンマーク):任意の1文字を表す。
  • 「*」(アスタリスク):長さゼロ以上の任意の文字列を表す。
「任意の1文字」はちょうど1文字だけの穴を作ります。「長さゼロ以上」は空(何もない)も許します。
問題文の意味を整理すると、
  • [a]:文字列のどこかに「データ」を含むすべての文字列が該当する。つまり「データ」の前後に何があっても良い。前後どちらも0文字以上許す必要があります。したがってパターンは「データ」となります。
  • [b]:文字列が「データ」で終わるすべての文字列が該当する。後ろに文字が来ないことが条件なので、「データ」の前に任意の文字列(長さゼロ以上)を許し、後ろは何もない形、つまり「*データ」となります。
以上より、a に「データ」、b に「*データ」を当てはめた行が正しく、選択肢では が該当します。

解法ステップ

  1. 記号の意味を確認する:「?」は1文字、「*」は0文字以上の任意の文字列。
  2. 問題文の日本語をパターンに置き換える:
    • 「〜を含む」は前後どちらにも任意の文字列が来得る → 前後に「*」を付ける。
    • 「〜で終わる」は末尾が固定 → 末尾に何も付けない、先頭に「*」だけ付ける。
  3. 表の各行と照らし合わせ、対応する行を選ぶ。

選択肢別の誤答解説

  • ア(a:「?データ*」、b:「?データ」)
    a の「?データ*」は「データ」の前にちょうど1文字だけ存在する場合のみ一致します。任意の長さ(0文字や2文字以上)を許さないため、問題の「データを含むすべての文字列」には不十分です。b の「?データ」も先頭に必ず1文字必要で、先頭が「データ」そのもの(=先頭が空)だと一致しないので誤りです。
  • イ(a:「?データ*」、b:「*データ」)
    a が上と同様に誤り(前にちょうど1文字しか許さない)。b の「*データ」は b の条件(データで終わる)には合いますが、a がダメなのでこの行は不正解です。
  • ウ(a:「データ」、b:「?データ」)
    a の「データ」は正しい(任意の長さの前後を許す)。しかし b の「?データ」は末尾が「データ」であることは満たすものの、先頭に必ず1文字必要で「データ」だけの文字列(長さがちょうど2文字や1文字ではないか等)を正しく扱えないため、b の条件を完全には満たしません。
  • エ(a:「データ」、b:「*データ」)
    a は「データを含むすべての文字列」になり、b は「データで終わるすべての文字列」になるので両方とも条件に合致します。したがってこの行()が正解です。

よくある誤解

  1. 「* は1文字を表す」と誤解する
    • 実際は「*」は0文字以上の任意の長さを表します。1文字だけでなく、空文字や複数文字も含みます。
  2. 「? は0文字を許す」と勘違いする
    • 「?」は必ず1文字が存在する場合にマッチします。空文字は許しません。
  3. 「含む」と「始まる/終わる」を混同する
    • 「含む」は前後どちらにも任意の文字列を許す(データ)。「始まる」は先頭固定(データ*)、「終わる」は末尾固定(*データ)。

補足コラム

  • 類似の表現に注意:SQL の LIKE 句ではワイルドカードが異なります。一般的に SQL では「%」が任意の文字列(*と同じ役割)、「_(アンダースコア)」が任意の1文字(?と同じ役割)です。ツールや言語によって使う記号が変わるので、環境に応じて確認してください。
  • 正確に「データ」だけに一致させたい場合は、前後に何も許さないパターン「データ」を使います。つまり「データ」は「データ」そのものも含みます(前後が空でもよいので)。

FAQ

Q1: 「データ」は「データ」だけの文字列にもマッチしますか?
A1: はい。* は長さゼロも許すため、前後が空でも「データ」に一致します。
Q2: 大文字小文字は区別されますか?
A2: ワイルドカード自体は大文字小文字を区別しません。マッチングの大文字・小文字の扱いは使うシステム(検索ツールやプログラミング言語)の設定次第です。ケースセンシティブかどうかを確認してください。
Q3: 日本語やマルチバイト文字でも同じルールですか?
A3: 基本的なルール(? は1文字、* は0文字以上)は同じです。ただし文字の数え方(バイト数 vs 文字数)が問題になる場合があるので、特殊な環境では注意してください。

関連キーワード: ワイルドカード、ワイルドカード検索、パターンマッチング、グロブ、メタ文字、LIKE句、ワイルドカードルール
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

ITパスポート
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について