本文へスキップ

平成30年度 春期 ITパスポート試験 問85

この問題の解説と、これまでの解答の記録です。

問85
頻出度★☆☆

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

出典 平成30年度 春期 ITパスポート試験 問85
解説

問 85

  • ア

    正解 パターン「*A*.te??」を記号ごとに分解して照合する。「*」は0個以上の任意文字列、「?」は任意の1文字を表し、パターンは文字列全体と一致しなければならない。したがって一致条件は『どこかに A を含み、その後に「.te」が続き、さらに任意の2文字で終わる』ことになる。①「A.text」は、先頭の A(前の「*」は0文字に対応)→「.te」→残りの「xt」がちょうど2文字で「??」に対応し、末尾まで過不足なく一致する。他の①〜④で一致するものは無いため、条件を満たすものだけを挙げると「①」だけとなり、正解は選択肢アである。

  • 不正解イ

    ②「AA.tex」は「.te」の後ろが「x」の1文字しかなく、「??」が要求する2文字に足りないため不一致。一致するのは①だけなので、②まで含めるイは誤り。

  • 不正解ウ

    ②は上記のとおり2文字に足りず不一致。③「B.Atex」は「.」が A より前にあり、A の後ろに「.te」が続かないため不一致。④「BA.Btext」は唯一の「.」の直後が「B」で「te」に続かないため不一致。どれも条件を満たさず、②, ③, ④を挙げるウは誤り。

  • 不正解エ

    ③「B.Atex」は A の後ろに「.te」が無く、④「BA.Btext」は「.」の直後が「te」でないため、いずれも「*A*.te??」に一致しない。③, ④を挙げるエは誤り。

ここがポイント
  • ワイルドカードの基本: 「*」は0文字以上の任意の文字列、「?」は任意の1文字を表し、パターンは検索対象の文字列全体と一致する必要がある。
  • 「?」は必ず1文字を消費するので「te??」は「te」の後に『ちょうど2文字』を要求する。固定部分(「.」「te」など)の位置と、可変部分の文字数を厳密に数えて照合するのが要点。
用語

解答の記録