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

ITパスポート 2018年 春期 85


問題文

ワイルドカードを使って“A.te??”の表現で文字列を検索するとき、①〜④の文字列のうち、検索条件に一致するものだけを全て挙げたものはどれか。ここで、ワイルドカードの“?”は任意の1文字を表し、“*”は0個以上の任意の文字から成る文字列を表す。
① A.text ② AA.tex ③ B.Atex ④ BA.Btext

選択肢

(正解)
①、②
②、③、④
③、④

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

ワイルドカード "A.te??" での検索一致【ITパスポート 解説】

正解の理由

パターン "A.te??" は順に、先頭の *(任意の0文字以上)→A(文字 'A')→次の *(任意の0文字以上)→.(ピリオドはそのままの文字)→t e(文字列 "te")→? ?(それぞれ任意の1文字、合計2文字)を要求します。つまり「どこかに 'A' があり、その後にピリオドと 'te' が続き、さらにその後にちょうど2文字がある」文字列がマッチします。与えられた候補のうち、この条件を満たすのは ① の "A.text" のみです。したがって選択肢 (①)が正しい理由になります。

解法ステップ

  1. ワイルドカードの意味を確認する
    • ? は「任意の1文字」を表す。
    • * は「任意の0文字以上の文字列」を表す。
  2. パターンを分解する
    "A.te??" は次の順で要求する:任意の文字列 → 'A' → 任意の文字列 → '.' → 't' → 'e' → 任意の1文字 → 任意の1文字。
  3. 各候補をパターンにあてはめて確認する
    • 「.te??」の部分は「ピリオド + 'te' + ちょうど2文字(合計5文字)」で終わる必要があることに注意する。
    • 候補の末尾が ".te" の後に2文字あるか、そしてその ".te" の前に 'A' が存在するかをチェックする。

選択肢別の誤答解説

  • ア: ①
    • ① "A.text" は先頭の * が空文字に対応して 'A' が先頭に来ます。続く * が空でもよく、末尾は ".text" で ".te" の後に "xt" の2文字があるので条件を満たします。よって一致します。
  • イ: ①、②
    • ② "AA.tex" は末尾が ".tex" で、".te" の後に x が1文字しかありません。? ? が2文字を要求するため不一致です。したがって②は誤りです。
  • ウ: ②、③、④
    • ② は上記の通り不一致です。
    • ③ "B.Atex" は ".Atex" のようにピリオドの直後が 'A' であり、ピリオド直後に 't' 'e' が来ていないため ".te" の部分が満たされません。
    • ④ "BA.Btext" はピリオド直後が 'B' で、ピリオドの直後に 't' 'e' が続いていないため不一致です。
  • エ: ③、④
    • ③・④ いずれも、パターンで要求される「ピリオドの直後に 't' 'e' が来て、そのあとに2文字」が満たされないため、どちらも不一致です。

よくある誤解

  1. 「ピリオド(.)はワイルドカードで何でも表す」と思う誤解
    • 正しくは、この問題のワイルドカード仕様では . は普通の文字(ピリオドそのもの)です。正規表現(regex)では . が任意の1文字を表しますが、今回のルールとは別物です。
  2. * が必ず1文字以上マッチすると考える誤解
    • * は0文字でもマッチします。つまり A の直後にすぐピリオドが来ても問題ありません。
  3. ? は「0〜1文字」だと思う誤解
    • ? は必ず1文字を表します。0文字は許されません。

補足コラム

ワイルドカード(glob とも呼ばれます)はファイル名検索や簡易的なパターンマッチでよく使われます。注意点として、ワイルドカードの意味は使う場面によって微妙に違うことがあります。たとえば:
  • シェルのファイル名展開(bash等)では、ドット(.)で始まる隠しファイルは * ではマッチしない設定が一般的です(特殊扱い)。
  • 正規表現(regex)はより強力で、. が任意1文字、* は直前の文字の0回以上の繰り返しを表すなど、別ルールです。
覚え方のコツ:? は「1つだけの穴」、* は「たくさんの穴(0個も可)」とイメージすると判別しやすいです。

FAQ

Q1. 「A.te??」で先頭の * を省略しても同じですか?
A1. 先頭の * を省くと、文字列は必ず先頭が 'A' で始まらなければなりません。* があると先頭に何があってもよい、つまりより広い範囲を表します。
Q2. ? が2つ続いている場合、2文字以上は許されますか?
A2. 許されません。? ? は「ちょうど2文字」を意味します。2文字より多い場合はその分はマッチしません(別の * が必要)。
Q3. ワイルドカードは大文字・小文字を区別しますか?
A3. 多くの実装では区別します("A" と "a" は別)。ただし環境によっては大文字小文字を区別しない設定もあるため、使う場面の仕様を確認してください。

関連キーワード: ワイルドカード、ワイルドカード検索、パターンマッチ、glob、ワイルドカードと正規表現の違い
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

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

クイズ画面へ遷移する

すぐに利用可能!

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

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