IPA過去問ドリル

平成28年度 春期 基本情報技術者試験 午前 問3

テクノロジ/基礎理論

UNIXにおける正規表現 [A-Z]+[0-9]* が表現する文字列の集合の要素となるものはどれか。ここで,正規表現は次の規則に従う。 [A-Z]は,大文字の英字1文字を表す。 [0-9]は,数字1文字を表す。 +は,直前の正規表現の1回以上の繰返しであることを表す。 *は,直前の正規表現の0回以上の繰返しであることを表す。

出典:平成28年度 春期 基本情報技術者試験 午前 問3

正解:エ

解説

正規表現[A-Z]+[0-9]*は,大文字の英字が1文字以上連続した後に,数字が0文字以上(あってもなくてもよい)続く文字列を表します。したがって,数字が1文字もない,大文字だけから成る文字列もこの条件を満たします。

選択肢ごとの解説

  • 誤り。全て数字であり,先頭に大文字の英字が1文字もないため,[A-Z]+の条件を満たしません。
  • 誤り。“+”は本来繰返しを表すメタ文字であり,文字列中に記号としての“+”を含める表現にはなりません。
  • 誤り。文字列中に記号としての“*”を含んでおり,この正規表現ではリテラルの“*”を表せません。
  • 正しい。大文字の英字が6文字連続しており,数字が0個でも[0-9]*(0回以上の繰返し)の条件を満たすため該当します。
基本情報技術者の過去問を演習モードで解く