本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

令和7年度 技術士第一次試験問題【専門科目】

V−1

次の文字列のうち、正規表現 (a*(ab)*|c)*ad* で表すものとして、最も不適切なものはどれか。ただし、記号 * は直前の要素の0回以上の繰り返しを、記号 | は選択を表すものとする。

@ ccaaabaa

A cabaacad

B aabcadad

C abcadddd

D abcabcad


類題

H30 V-05


正解

B


解説

(a*(ab)*|c) * は、 (a*(ab)*|c)(a*(ab)*|c)(a*(ab)*|c) ・・・
と同じことであるため、これを踏まえる。

@ ccaaabaaは、(a*(ab)*|c)(a*(ab)*|c)(a*(ab)*|c)(a*(ab)*|c)(a*(ab)*|c)a で表現できる。

A cabaacadは、(a*(ab)*|c)(a*(ab)*|c)(a*(ab)*|c)(a*(ab)*|c)ad* で表現できる。

B 不適切である。aabcadadは、(a*(ab)*|c)(a*(ab)*|c)(a*(ab)*|c) ad* で、最後のadを表現できない。問題の正規表現では、dの後にd以外の文字を表すことができない。

C abcaddddは、(a*(ab)*|c)(a*(ab)*|c)(a*(ab)*|c)ad* で表現できる。

D abcabcadは、(a*(ab)*|c)(a*(ab)*|c)(a*(ab)*|c)(a*(ab)*|c)ad* で表現できる。

目次 V−2