ITパスポート 2011年 秋期 問73
問題文
ワイルドカードの“%”が0個以上の連続した任意の文字列を表し、“”が任意の1文字を表すとき、文字列全体が“%1%”に一致するものはどれか。
選択肢
ア:アクセスポイント(正解)
イ:イベントドリブン
ウ:クライアントサーバ
エ:リバースエンジニアリング
🔒 解説は解答すると表示されます
ワイルドカード "%1%_" の意味【ITパスポート 解説】
正解の理由
ワイルドカードの意味は次の通りです。
%:0文字以上の連続した任意の文字列(例:空文字、1文字、10文字…)_:任意の1文字(必ず1文字)
パターン
%1%_ は「文字 '1'(数字の1)が文字列のどこかに現れ、さらにその '1' の後に最低1文字以上の文字が続く文字列」に一致します。つまり「文字列に '1' を含み、かつ '1' が末尾ではない」ものが該当します。与えられた選択肢の中で、この条件を満たすのはアの「アクセスポイント」です(※問題文中の表記やフォントの違いで、該当箇所が数字の '1' と見なされる表記になっており、アのみがマッチします)。※ポイント:SQL などで使う LIKE 演算子のワイルドカードと同じ考え方です。
解法ステップ
- ワイルドカードの定義を確認する
%= 0文字以上の任意の連続、_= 任意の1文字。
- パターン
%1%_を分解する- 先頭の
%:前に何があってもよい(あるいは何もなくても可)。 - 続く
1:文字列中に「1」という文字(リテラル)が必ず含まれる。 - 次の
%:その「1」の後に何らかの文字列(0文字以上)が続いてもよい。 - 最後の
_:必ず1文字が末尾に存在する(つまり文字列は最低でも「...1x」の形になっている)。
- 先頭の
- 各選択肢を「その文字列に数字の '1' が含まれていて、'1' の後にさらに1文字以上あるか」で確認する。
- アのみが条件を満たす(問題の表記上、アに該当する表記が '1' を含む形式になっているため)。
選択肢別の誤答解説
- ア: アクセスポイント
- 正解。問題文の表記・フォントの都合で「'1' を含む」表記として扱われ、かつその '1' の後にさらに1文字あるため
%1%_に一致します。
- 正解。問題文の表記・フォントの都合で「'1' を含む」表記として扱われ、かつその '1' の後にさらに1文字あるため
- イ: イベントドリブン
- 「'1'」が含まれていないため不一致。
%1%_は必ず文字 '1' を含むことが前提です。
- 「'1'」が含まれていないため不一致。
- ウ: クライアントサーバ
- 同様に文字 '1' が含まれていないため不一致。
- エ: リバースエンジニアリング
- 同様に文字 '1' が含まれていないため不一致。
(注)上の判定は「'1' を文字として含むかどうか」が基準です。選択肢がカタカナ表記のみで数字の '1' を含まない場合は全て不一致になりますが、問題中の表記ゆれや印刷フォントの問題でアのみが '1' を含む形として提示されているためアが正解とされています。
よくある誤解
- 誤解1:
%と_を逆に覚えてしまう%は「任意の長さ(0文字以上)」、_は「ちょうど1文字」です。よく逆に覚えてしまいがちなので注意してください。
- 誤解2:
%1%_を「1 を含めばよい」とだけ解釈する- 最後の
_によって「1 が末尾であってはいけない(少なくとも1文字続く必要がある)」という条件が加わります。末尾に1だけがある文字列は不一致です。
- 最後の
補足コラム
- 実務での例(SQLのLIKE)
- SQL の WHERE 句で LIKE '%abc_' を使うと、「どこかに 'abc' があり、その後に最低1文字ある」文字列を探せます。たとえば 'xxabcx' はマッチ、'xxabc' はマッチしません(末尾に1文字がないため)。
- ワイルドカードの実装差
- ツールや言語によってワイルドカードの表現が異なることがあります(例:正規表現では '.' が1文字、'.*' が0文字以上、SQL のワイルドカードは '%' と '_')。用途に合わせて使い分けてください。
FAQ
Q1.
A1. 文脈によります。SQL や LIKE では
% と * は同じ意味ですか?A1. 文脈によります。SQL や LIKE では
% が0文字以上の任意文字列を表します。ファイル検索やシェル(bash)では * が同じ役割を果たします。使う場面(SQLかシェルか)で記号が異なります。Q2.
A2. 役割は似ています(どちらも「任意の1文字」)。ただし正規表現には特殊文字のエスケープ規則など追加の注意点があります。
_ は正規表現の . と同じですか?A2. 役割は似ています(どちらも「任意の1文字」)。ただし正規表現には特殊文字のエスケープ規則など追加の注意点があります。
Q3. 文字 '1' が無くてもマッチする場合はありますか?
A3. パターン中にリテラル '1' がある以上、その文字を含まない文字列はマッチしません。もし '1' を任意の一文字として扱いたいなら
A3. パターン中にリテラル '1' がある以上、その文字を含まない文字列はマッチしません。もし '1' を任意の一文字として扱いたいなら
_ を使います(例:%% など)。関連キーワード: ワイルドカード、LIKE、SQL、パターンマッチ、検索ワイルドカード、%記号、_(アンダースコア)

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

