ITパスポート 2011年 秋期 問73
問題文
ワイルドカードの“%”が0個以上の連続した任意の文字列を表し、“_”が任意の1文字を表すとき、文字列全体が“%イ%ン_”に一致するものはどれか。
選択肢
ア:アクセスポイント(正解)
イ:イベントドリブン
ウ:クライアントサーバ
エ:リバースエンジニアリング
🔒 解説は解答すると表示されます
ワイルドカード一致規則【ITパスポート解説】
正解の理由
ワイルドカードの“%”は0個以上の連続した任意の文字列、“_”は任意の1文字を表します。パターン
%イ%ン_ が文字列全体に一致するには、「どこかに“イ”があり、その後ろのどこかに“ン”があり、その“ン”の後ろにちょうど1文字だけ残って終わる」必要があります。つまり、“イ”を含み、最後から2文字目が“ン”になっている文字列です。アの「アクセスポイント」は、“イ”の直後に“ン”があり、その後ろが“ト”の1文字で終わるので一致します。
解法ステップ
- パターンを分解する。
%→ 0文字以上、イ→ 文字“イ”、%→ 0文字以上、ン→ 文字“ン”、_→ ちょうど1文字。 - 末尾が
ン_なので、まず「最後から2文字目が“ン”か」を確認する。ここで外れる選択肢はすぐに除ける。 - 残った選択肢について、その“ン”より前に“イ”があるかを確認する。
- アクセスポイント = “アクセスポ”(%)+“イ”+“”(%は0文字でよい)+“ン”+“ト”(_)と分解でき、全体が一致する。
選択肢別の誤答解説
- ア:アクセスポイント … 最後から2文字目が“ン”で、その前に“イ”がある。一致する(正解)。
- イ:イベントドリブン … 先頭に“イ”はあるが、最後から2文字目は“ブ”。“ン”は最後の文字なので、その後ろに“_”に当たる1文字が残らない。途中の“ン”(イベン)を使っても、後ろに“トドリブン”の5文字が残り、“_”の1文字では受けきれない。一致しない。
- ウ:クライアントサーバ … “イ”の後ろに“ン”はあるが、“ン”の後ろに“トサーバ”の4文字が残る。最後から2文字目は“ー”。一致しない。
- エ:リバースエンジニアリング … 最後から2文字目は“ン”だが、文字列のどこにも“イ”が無い。一致しない。
よくある誤解
- “%”を1文字以上と考える誤解
“%”は0文字でもよいので、アのように“イ”と“ン”が隣り合っていても一致します。 - “_”を「1文字以上」と考える誤解
“_”はちょうど1文字です。パターンの最後にあるので、“ン”の後ろに残るのは1文字だけでなければなりません。ウのように“ン”の後ろに何文字も続くと一致しません。 - 「“イ”と“ン”を含めば一致する」と考える誤解
文字列全体との一致なので、並び順(“イ”が先、“ン”が後)と、末尾の位置(“ン”の後ろが1文字)まで満たす必要があります。
補足コラム
SQL の LIKE 句でも同じ記号を使います。例えば
WHERE 用語 LIKE '%イ%ン_' とすると、この問題と同じ条件で行を抽出できます。なお、ファイル名の検索などでは“*”(0文字以上)と“?”(任意の1文字)を使う方式もあり、記号は違っても考え方は同じです。FAQ
Q. パターンの先頭が“%”でなければどうなりますか?
A. 例えば
A. 例えば
イ%ン_ なら、文字列が“イ”で始まる必要があります。この場合、アは“ア”で始まるので一致しません。Q. “ン”が文字列に複数あるときはどう判定しますか?
A. どの“ン”を使ってもよいので、一致する分け方が一つでもあれば一致です。ただしパターンの最後が
A. どの“ン”を使ってもよいので、一致する分け方が一つでもあれば一致です。ただしパターンの最後が
ン_ なので、実際には「最後から2文字目の“ン”」を使えるかどうかで決まります。関連キーワード: ワイルドカード、LIKE、%(0文字以上の任意の文字列)、_(任意の1文字)、パターンマッチング、SQL

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

