ワイルドカードを使って“*A*.te??”の表現で文字列を検索するとき,①〜④の文字列のうち,検索条件に一致するものだけを全て挙げたものはどれか。
ここで,ワイルドカードの“?”は任意の1文字を表し,“*”は0個以上の任意の文字から成る文字列を表す。
① A.text
② AA.tex
③ B.Atex
④ BA.Btext
① ①, ② ②, ③, ④ ③, ④ 購入状況を確認しています… 正答 1
解説 正解は1です。
検索条件「*A*.te??」は、次の部品が先頭から順に並ぶ文字列を表します。
「0文字以上の任意の文字列」「A」「0文字以上の任意の文字列」「.te」「任意の1文字」「任意の1文字」です。
つまり、Aを含み、その後ろに「.te」があり、さらにその後に2文字だけ続いて終わる文字列が一致します。
【記述別解説】
①:○ A.textは、Aの後に「.te」が続き、その後が「xt」の2文字で終わるので一致します。
②:× AA.texは、「.te」の後が「x」の1文字しかないので、「??」の2文字に一致しません。
③:× B.Atexは、Aの後に「.」がないので、Aより後ろに「.te」が現れません。
④:× BA.Btextは、Aの後が「.Btext」です。
末尾の5文字は「Btext」で「.te??」の形にならないので一致しません。
【選択肢別解説】
1:○ 一致する①だけを挙げています。
2:× ①は一致しますが、②は「.te」の後が1文字なので一致しません。
3:× ②、③、④はいずれも一致しません。
4:× ③と④はいずれも一致しません。
【ポイント】
「?」は必ずちょうど1文字に対応します。
「*」は0文字でもよいので、①のように先頭がいきなりAでも一致します。