2017-03-11 2 views
-2

「?」を表すことができるかどうか質問したいと思います。 union(+)とclosure(*)の量子のみを使用しています。正規表現では、 "?"の代わりにする方法ユニオン(+)とクロージャ(*)の量指定子のみを使用して一致するか?

たとえば、「a +」は「a(a *)」と表すこともできます。どのように "a"を表現できますか? 「*」と「+」だけで?

おかげ:)

+0

あなたは、少なくとも0個の前回の文字か最大で1個の一致を意味する{0,1}を使うことができます。 – FrenchMajesty

+0

'+'と '*'だけでは不可能です。交替( '(a |)')やグループとルアラップ( ''(?!\ 2)())* ')やその他のツールを取得する必要があります。 –

+0

返事をありがとう。私はこの質問を提起した。なぜなら私はオートマトンの模擬試験の質問の一つに詰め込まれているからだ。ユニオン(+)、クロージャー(*)、および連結式を使用してすべての言語を記述することができます。 –

答えて

0

a?に述べたように、+ε として表現することができ、a+aa*として表すことができます。

+0

"a +ε"にはεとは何ですか?正規表現のようには見えません。 –

関連する問題