問99
頻出度★★☆
ワイルドカードに関する次の記述中の a,b に入れる字句の適切な組合せはどれか。 任意の1文字を表す“?”と,長さゼロ以上の任意の文字列を表す“*”を使った文字列の検索について考える。[ a ] では,“データ”を含む全ての文字列が該当する。また,[ b ] では,“データ”で終わる全ての文字列が該当する。
这道题的解析和你的作答记录。
ワイルドカードに関する次の記述中の a,b に入れる字句の適切な組合せはどれか。 任意の1文字を表す“?”と,長さゼロ以上の任意の文字列を表す“*”を使った文字列の検索について考える。[ a ] では,“データ”を含む全ての文字列が該当する。また,[ b ] では,“データ”で終わる全ての文字列が該当する。
a 为「?数据*」,由于「?」必定要求一个字符,所以「数据」单独或以「数据」开头的字符串都不符合,无法满足「包含」。b 也是「?数据」,「数据」单独或前面带有两个及以上字符的词都不符合,无法满足「以…结尾」。
b 的「*数据」是正确的,但 a 为「?数据*」,「?」强制紧邻的前方要有一个字符,因此「数据」单独或以「数据」开头的字符串会被遗漏,无法表达「包含数据的全部字符串」。
a 的「*数据*」是正确的,但 b 为「?数据」,「?」强制紧邻的前方要有一个字符,因此「数据」单独或前面有两个及以上字符的词都不符合,无法表达「以数据结尾的全部字符串」。
正解 通配符中,「?」表示恰好任意一个字符,「*」表示长度为零以上的任意字符串。空 a 需要匹配所有包含「数据」的字符串,因此要让前后无论出现什么(也可以什么都没有),用「*」把前后夹住的「*数据*」才正确。这样「数据」单独、「X数据」、「数据Y」、「X数据Y」全部都符合。空 b 需要匹配所有以「数据」结尾的字符串,因此只在前面放「*」、并把末尾固定为「数据」的「*数据」才正确,「数据」单独或「X数据」都符合。该组合为 a:「*数据*」、b:「*数据」,因此选项エ正确。