跳到正文

平成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」)的位置和可变部分的字符个数, 再进行比对。
用語
解答問85ア
练这一题

作答记录