ITパスポート 2011年 秋期 問73
問題文
ワイルドカードの“%”が0個以上の連続した任意の文字列を表し、“”が任意の1文字を表すとき、文字列全体が“%1%”に一致するものはどれか。
選択肢
ア:アクセスポイント(正解)
イ:イベントドリブン
ウ:クライアントサーバ
エ:リバースエンジニアリング
🔒 解説は解答すると表示されます
ワイルドカード一致規則【ITパスポート解説】
正解の理由
ワイルドカードの意味は次のとおりです。% は「0個以上の連続した任意の文字列」を表し、_ は「任意の1文字」を表します。したがってパターン "%1%_" は「どこかに文字 '1'(数字の1)が含まれていて、その '1' の後にさらに少なくとも1文字が続く文字列」に一致します。
選択肢のうち、ア(問題の表記ではアクセスポ1トのように数字の '1' が含まれている)だけが文字 '1' を含み、かつその '1' の後に文字(例:ト)があるためパターンに一致します。イ、ウ、エには数字の '1' が含まれていないため一致しません。
※重要:一致判定は「文字そのもの」が一致するかで決まります。見た目が似ていても(例:英字の l やカタカナのイ と数字の1)別の文字コードなら一致しません。
解法ステップ
-
パターンの意味を整理する
- % → 0文字以上の任意の文字列
- _ → 必ず1文字(1つだけ)
よって "%1%_" は「文字 '1' がどこかにあり、その後に最低1文字ある」ことを意味する。
-
各選択肢の文字列をそのまま見て、文字 '1'(半角の数字1)が含まれているか確認する。
- 含まれていなければその時点で不一致。
-
'1' が含まれている候補について、'1' の後に別の文字が存在するか確認する。存在すれば一致。
-
問題中の選択肢表記を確認して、アが "アクセスポ1ト" のように '1' を含む表記であれば、% が前を、'1' がその位置を、% が(ここでは空文字でもよく)続く部分を、最後の _ が 'ト' 等の1文字を受けて一致することを確認する。
具体的な分解例(アが "アクセスポ1ト" と印字されている場合)
- % → "アクセスポ"
- '1' → '1'(ここがパターンの文字1)
- % → ""(空文字で可)
- _ → "ト"(最後の 1文字)
以上で全体一致。
選択肢別の誤答解説
- ア:正解。問題表記に数字の '1' が含まれており、かつその後に文字が続くため "%1%_" に一致する。分解は上記参照。
- イ(イベントドリブン):文字列中に数字の '1' が含まれていないため一致しない。
- ウ(クライアントサーバ):同様に数字の '1' は含まれていないので不一致。
- エ(リバースエンジニアリング):こちらも数字の '1' は含まれていないため不一致。
※もし選択肢が印刷ミスやフォントの違いで見た目が似ている場合は、必ず問題冊子の「実際の文字」をよく確認してください。見た目だけで判定すると誤りやすいです。
よくある誤解
-
"_"(アンダースコア)は「数字1」や「数値1」を表すと思い込む誤解
- 実際は "_" は「任意の1文字」を意味するワイルドカードで、特定の文字(例えば '1')ではありません。
-
'%' が「1文字以上」を意味すると誤解するケース
- '%' は 0文字以上です。空文字も許されます。したがってパターン中の後続の '_' が存在する限り、% を空にして一致させることもできます。
-
見た目が似ている文字(l / I / 1 / 全角イ / 全角1)を混同する誤り
- 判定は文字そのもの(コードポイント)が一致するかで行われます。見た目が似ていても別の文字なら一致しません。問題文に書かれた文字を正確に確認してください。
補足コラム
- SQL の LIKE 句で用いるワイルドカードと同じ考え方です。例:WHERE col LIKE '%1%_' は「col に数字 '1' を含み、かつその '1' の後に少なくとも1文字ある行」を抽出します。
- マルチバイト文字(日本語など)でもワイルドカードは「文字単位」で考えます。1つの漢字やカタカナは "_" で1文字に相当します。
- 全角数字の '1'(U+FF11)と半角数字の '1'(U+0031)は別物です。パターンに使われている文字と対象文字列の文字が同じ形式であることを確認しましょう。
FAQ
Q. '1' が文字列の最後に来ている場合は一致しますか?
A. いいえ。パターンの最後が '_'(任意の1文字)なので、'1' の後に少なくとも1文字が必要です。末尾に '1' しかない文字列は不一致です。
A. いいえ。パターンの最後が '_'(任意の1文字)なので、'1' の後に少なくとも1文字が必要です。末尾に '1' しかない文字列は不一致です。
Q. 文字列内に複数の '1' があるとどうなりますか?
A. 複数あっても、いずれかの '1' の後に1文字以上続いていれば一致します。最初の '1' で試してダメでも、後ろの '1' で一致する可能性があります。
A. 複数あっても、いずれかの '1' の後に1文字以上続いていれば一致します。最初の '1' で試してダメでも、後ろの '1' で一致する可能性があります。
Q. 全角の数字 '1' と半角の '1' は区別されますか?
A. 区別されます。パターンにあるのが半角 '1' なら対象に半角 '1' が含まれている必要があります。
A. 区別されます。パターンにあるのが半角 '1' なら対象に半角 '1' が含まれている必要があります。
関連キーワード: ワイルドカード、LIKE、%(ゼロ以上)、_(任意1文字)、全角半角、SQL、文字列照合

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

